~~我学习了重载函数后,想自己实践一下,于是随便编了个程序来实验,见下文:
#include <iostream>
using namespace std;
class ts
{
public:
ts();
friend ts &operator>>(istream &in,ts &t); //声明重载
int get_m(); //返回私有变量
private:
int m;
};
ts::ts()
{
m=0;
}
ts &operator>>(istream &in,ts &t) //重载函数体
{
in>>m;
if(m<10) m=0; //条件判断
}
int get_m()
{
return m;
}
int main(void)
{
ts tt;
cin>>tt; //重载运算符调用
cout<<tt.get_m()<<endl;
return 1;
}
这是程序出错信息:
--------------------Configuration: A_TEST - Win32 Debug--------------------
Compiling...
输入符重载测试.cpp
E:\MATE\VC\A_TEST\输入符重载测试.cpp(20) : error C2065: 'm' : undeclared identifier
E:\MATE\VC\A_TEST\输入符重载测试.cpp(31) : error C2593: 'operator >>' is ambiguous
执行 cl.exe 时出错.
输入符重载测试.obj - 1 error(s), 0 warning(s)
|
|
|
根据提示我能知道是我定义友元函数出错,因为在调用"tt."时并没有运算符重载函数,而我又不知怎么调试,希望哪位好心人自己调试一下,给我可行的程序,并说明出错原因,谢谢!!
|
|
|
in>>m;
这一句为什么会提醒出错,是不是格式错了!要如何修改!!
各位C++高手们帮个小忙...如何定义一个日期类date
{ int year,month,day;pubilic:void set(int y,int m,int d);void disp();} void DATE::set(int y,int m,int d){ year=y;month=m;day=d;} void diap(){ cout<<"The date is"<<year<<"-"<<month<<"-"<<day;} 调用 DATE dat;dat.set(2007,9,12);dat.diap();...
C++编程问题,高手请进,谢谢!
printf("%d ",pt->data); \/*访问根节点*\/ ps = (ABTStack *)malloc(sizeof(ABTStack)); \/*根节点进栈*\/ ps->ptree = pt; ps->link = top; top = ps; pt = pt->lchild; \/*遍历节点右子树,经过的节点依次进栈*\/ } if(top!=NULL) { pt = top->ptree; \/*栈顶节点出栈*\/ ps = to...
c++ 高手请进,我只有这些分了,谢了,急急急急急!!!
include <string.h> include <stdlib.h> define LEN 256 struct node { char str[LEN]; \/\/字符串 struct node* next;\/\/指向下个结构 };int main(){ struct node head_node;struct node* p = &head_node;struct node* q;int i;scanf("%s", head_node.str);\/\/输入第一个字符串 for ...
(c++)高手请进...帮我转code!!!
include<iostream.h> typedef int ERRORCODE;define TRUE 1 define FAILED -1 const int MAX_OF_STAR_NUMBER = 30; \/\/对于魔鬼数字尽量用常量定义 const int MAX_OF_YEAR = 20; \/\/最大20年 \/\/学生的组成成分比 typedef struct { int m_Egs_p; \/\/ 毕业生的百分比 int m...
求C++大神帮个忙!编写一个函数lcm,用于计算两个整数的最小公倍数,该...
include <stdio.h>int gcd(int a, int b){int t;while(b > 0){a %= b;t = b;b = a;a = t;}return a;}int lcm(int a, int b){return a*b\/gcd(a,b);}int main(){int a,b;scanf("%d%d",&a,&b);printf("lcm(%d,%d) = %d\\n", a, b, lcm(a,b));} ...
高手请进!c++编程急需!重金悬赏。。。请发邮箱708891089@qq.com...
include <stdio.h> struct date { int year;int month;int day;};int days(struct date day){ static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, \/* 平均每月的天数 *\/ {0,31,29,31,30,31,30,31,31,30,31,30,31,},};int i,lp;lp=day.year...
高分求一C++编程问题,高手请进!!!
math\/complex number algorithms - 这些复数算法是目前C++标准中的三角函数的反面,来自 John Maddock.math\/common_factor - 最大公约数和最小公倍数,来自 Daryle Walker.math\/octonion - 八元数,来自 Hubert Holin.math\/quaternion - 四元数,来自 Hubert Holin.math\/special_functions - 大量选定的...
c++指针和字符串的问题 紧急!!! 高手请进
你对char *型的a 进行"abcdefg"的赋值,"abcdefg"存在静态区,是常量,不能改变,所以下面的a[0]='b'是错的,它在试图改变常量的值。
tc++3.0高手请进!
关于Terminate batch job(Y\/N)大家知道,在批命令执行时,如果按Crtl+Break,会出现如下提示信息:Terminate batch job (Y\/N)?打入“Y”,不再执行其余命令,返回DOS。打入“N”,只结束当前命令,继续执行其余命令。
c++高手请进 1,int a=0,b=1,c=2 执行如下表达式后b的值是?(a==20)|...
1.执行后b还是1,表达式只是一个逻辑表达式,不会改变b的值,意即只是“借用一下b”2.有效转义字符指能正确被输出的字符,他们本身代表一个字符或操作,例如“\\n”代表回车 3.答案是3,(a=b,a+c)是逗号表达式,最终结果为最后一项的值,即为a+c值(6),再除以2为3 4.此运算符(x ? y ...