关于重载运算符中参数使用const的问题 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 0%
Bbs6
本版专家分:9068
Blank
蓝花 2017年8月 C/C++大版内专家分月排行榜第三
Bbs6
本版专家分:9068
Blank
蓝花 2017年8月 C/C++大版内专家分月排行榜第三
Bbs1
本版专家分:0
关于函数使用const参数
这是我定义的Polynomial.hrnrn//Polynomial.hrn#include rn#include rn#include rn#include rn#include rn#include rn#include rnusing namespace std;rnrnclass Polynomial rn vector coefs;rnpublic:rn Polynomial();rn Polynomial(int);rn Polynomial(<em>const</em> vector&);rn Polynomial(<em>const</em> string&);rn Polynomial(<em>const</em> Polynomial&);rn ~Polynomial();rn <em>const</em> int degree();rn <em>const</em> vector coefficients();rn bool operator==(<em>const</em> Polynomial&);rn Polynomial& operator+=(<em>const</em> long);rn;rnrnrn实现如下:(Polynomial.cpp)rnrn#include "Polynomial.h"rnrn Polynomial::Polynomial()rn rnrn Polynomial::Polynomial(int coef)rn coefs.push_back(coef);rn rnrn Polynomial::Polynomial(<em>const</em> vector& vec)rn for(int i=0; i>coefs[i];rnrn rnrn Polynomial::Polynomial(<em>const</em> Polynomial& q)rn for(int i=0; i Polynomial::coefficients()rn return coefs;rn rnrnrn bool Polynomial::operator==(<em>const</em> Polynomial& right)rn if(degree()!=right.degree()) return false;rn for(int i=0; i
关于使用const声明的参数
找了好多资料,对<em>使用</em><em>const</em>声明的<em>参数</em>介绍很少rnrn<em>const</em> 声明的<em>参数</em>是按值传递的,而且形参不能被改变。rn---摘自《Delphi精要》71页rnrn有代码实例最好,看了Delphi里面的对值参与变参区别的代码,稍微理解了一些。rnrn谁能帮我理解一下<em>const</em>声明的<em>参数</em>有什么特性、用途?
C++重载运算符参数问题
  拿双目<em>运算符</em>“+”举例:rn  如果不是友元函数的话,一般一个<em>参数</em>就够了,但是我看书上说也可以写两个<em>参数</em>,于是我试着这么写了,rnrnclass Complex     //复数加法rnrnpublic:rn Complex()rn rn real = 0;rn imag = 0;rn rn Complex(double r, double i)rn rn real = r;rn imag = i;rn rn Complex operator+ (Complex & c1, Complex& c2); //这里写上2个<em>参数</em>,rn void display();rnprivate:rn double real;rn double imag;rn;rnrnComplex Complex::operator +(Complex &c1, Complex &c2)rnrn Complex c;rn c.real = c1.real+c2.real;rn c.imag = c1.imag+c2.imag;rn return c;rnrn但是出错了,说是 error C2804: 二进制“operator +”的<em>参数</em>太多rn有试着Complex operator+ (Complex & c1, Complex& c2);改成rnComplex operator+ (int a, Complex& c2);rn还是同样的错误,参考书上说是可以的,但是这么看的话果然还是不可以写两个<em>参数</em>吧。rn还是希望大家给个准确的答案。rnrn还有一个<em>问题</em>,就是“乘法”和“指针”的<em>重载</em>如何区分?rn符号都一样,有什么办法区分吗?rnrn
关于操作符重载const参数
[code=C/C++]rnfriend point operator+(point &a,point &b)rnrn……rnrnint main()rnrn……rncout<
关于复制构造函数的问题(参数const)
为什么复制构造函数的<em>参数</em>,有时候是(class &),有时候是(<em>const</em> class &)?rnrn女朋友看书的时候问的<em>问题</em>,书上没有解答,我也不会,特来请教大家。rn
关于const参数的一个问题
#include rnvoid IsConst( <em>const</em> char *p ) rnrn printf( "Yes!" );rnrnrnrnvoid IsConst( char *p )rnrn printf( "No!" );rnrnrnvoid main()rnrn <em>const</em> char *t1 = "test";rn IsConst( t1 );//这里显示了Yesrn IsConst( "test" );//??这里为什么显示No呢,应该也是<em>const</em>的呀rn getch();rn
关于const char * 参数问题!!!!
[code=C/C++]rn#include "stdafx.h"rn#include rn#include rnusing namespace std;rnvoid fun(<em>const</em> char **pp);rnint _tmain(int argc, _TCHAR* argv[])rnrn <em>const</em> char *ss=NULL;rn fun(&ss);rn printf("ss is :%s\n",ss);rn system("pause");rn return 0;rnrnvoid fun(<em>const</em> char **pp)rnrn string str;rn str="hao";rn *pp=str.data();rn printf("*pp is :%s\n",*pp);rnrn[/code]rnrn以上代码想实现输出:rn*pp is : haornss is : haorn但实际输出是:rn*pp is : haornss is :rnrnrn经过跟踪发现,ss 和*pp的地址一样,但是ss的值为空。如何才能将实参ss赋值呢?
关于const & 参数的疑问
在que(<em>const</em> int& x)函数<em>中</em>,<em>参数</em><em>使用</em><em>const</em>&有什么意义。引用为了就是可以改变<em>参数</em>值,但是加了<em>const</em>,意味在函数<em>中</em>就不能改变其值。所以我不知道<em>使用</em><em>const</em>&有什么别的意义。
为什么重载运算符的函数要用const
比如说<em>重载</em> > < 我先声明<em>重载</em> > 号的函数 然后直接在类<em>中</em>内联<em>重载</em>rn如果>号<em>重载</em>函数声明为<em>const</em> 则没<em>问题</em> 但是不声明为<em>const</em> 就会报错 报错内容就如没有<em>重载</em>直接用>去比较两个对象一样rnrn还有另外一个<em>问题</em> 就是<em>重载</em> == 和 != 和上面的一样<em>重载</em>==函数先声明 !=<em>重载</em>函数直接内联 但是这次 声明==<em>重载</em>函数就不需要为<em>const</em> 了 为什么rn以下是代码rnbool operator==(<em>const</em> RationalNumber &);rnbool operator(<em>const</em> RationalNumber &ration)rnrn return (ration < *this);rnrnrnbool operator!=(<em>const</em> RationalNumber &ration)rnrn return !(*this == ration);rnrn
在IF使用CONST的问题
我在rnif *** thenrn <em>const</em> str = "**"rnelsern <em>const</em> str = "**"rnend ifrnrn会提示名称重定义,有没办法解决??根据条件动态赋给str,应为全局要调用。
关于重载运算符问题
<em>重载</em><em>运算符</em>会用,但是什么时候该返回引用,什么时候该返回对象呢?rn最好具体一点吧,有代码解释最好了,谢谢各位了
关于重载运算符遇到的问题
[code=C/C++]class num rnrnpublic:rn num(int Tsize=size);rn num(<em>const</em> num&r);rn ~num()delete[]pt;rn num&operator=(<em>const</em> num&);rn T&operator[](int offset)return pt[offset]; //这里有<em>问题</em>rn <em>const</em> T&operator[](int offset)<em>const</em>//还有这里rn rn return pt[offset];rn rn int GetSize() <em>const</em> return numsize;rnprivate:rn int numsize;rn T*pt;rn;[/code]rnrn我在书上看到一个num类,这个num类<em>重载</em>[]时写了两遍operator(在上面代码注释处),这俩个的区别就是其<em>中</em>一个有<em>const</em>。rn我的<em>问题</em>是,它这么写是为了什么?我觉得写一个就够了啊。 请各位高手为我指点迷津,非常感谢!!
关于重载运算符+的一个问题
operator + ()函数不是可以定义为成员函数也可以定义为友元函数,那两种情况有什么区别?rn谢谢!
问关于重载运算符[]的问题~~
请教一下这两个<em>重载</em>函数到底返回的是什么引用啊?在主函数里是怎么用的?rn char& operator[](int n)rn rn return *(sptr+n);rn rn <em>const</em> char operator[](int n) <em>const</em>rn rn return *(sptr+n);rn rn谢谢了~~~rn代码如下~~:rnrn#include rn#include rnrnclass Stringrnrn char* sptr;rnrnpublic:rn String(char* s=0);rn ~String()delete sptr;rn void display()rn rn cout<
关于优先队列重载运算符问题
int类型的优先队列从小到大rn本来priority_queue< int,vector,greater > que;这样定义就行了rn但是今天做了hdu上的一题,楞是编译不过,说是greater未声明,poj上一模一样的题反倒ACrn然后我搜了一下,发现有人这么<em>重载</em>了括号就行了。。。实在是不理解。。。rnclass mycomparison rn rnpublic: rn bool operator() (<em>const</em> int& lhs, <em>const</em> int&rhs) <em>const</em> rn rn return (lhs > rhs);//使得从小到大排序,队列头为最小元素,优选权队列默认队列头最大 rn rn; rnpriority_queue, mycomparison> pq; rn为什么<em>重载</em>的是括号呢- -rn如果在greater无法用的情况下 大家自己又会想到怎么做呢?我直接定义两个<em>参数</em>为int类型的比较的函数编译不过。。rn或者有人知道为什么hdu编译不过也可以说说。。rn谢谢大家啦。
关于C++重载运算符问题
[img=https://img-bbs.csdn.net/upload/201705/09/1494260357_425382.png][/img] 这俩个函数有啥区别啊,少一个就会出现错位u!!!!!!
关于const在函数返回值使用问题.
<em>const</em> CString& operator+=(<em>const</em> CString& string);rnrn这是MFC<em>中</em>CString操作符+=函数的声明,不知第一个<em>const</em>起到什么作用?它到底rn限制什么东西不能修改.
关于类static const使用问题
.h在类<em>中</em>:rnclass c1 rnpublic:rnstatic <em>const</em> int MAX_NUMBER = 3;rnrn这里是声明,还是定义?Effective C++上说是声明,必须在.cpp<em>中</em>定义,但我在.net Visual C++<em>中</em>并不用在cpp<em>中</em>定义,如果定义了<em>const</em> int c1::MAX_NUMBER = 3,反而报错rnrnerror C2374: “MAX_NUMBER” : 重定义;多次初始化rnrn是不是Effective C++上的语法已经过时了???rnrnrn另外,如果将int改成double,或者char*都会报错:rnerror C2864: 只有常数静态整型数据成员才可以在类或结构<em>中</em>初始化rnrn先在h<em>中</em>定义,在cpp<em>中</em>初始化也不行,因为变量是<em>const</em>的,那我如果在类<em>中</em>定义整形的静态常量???rn
关于C++的重载运算符问题
#include rnusing namespace std;rnclass Setrnrnpublic:rn Set()rn rn top=NULL;rn rn ~Set();rn void push(int n1);rn void pop(int n2);rn void display();rn Set operator+(Set &s1);//<em>问题</em>主要就是<em>重载</em>的“+”运算rn Set operator-(Set &s2);//这行和下面这行是暂时先放在这里的rn Set operator*(Set &s3);rn bool get_value(int n3);//检查n3在不在链表<em>中</em>rn friend istream& operator >>(istream&,Set &s4);//这两行也还没有内容rn friend ostream& operator number!=n1)//利用指针p0判断加进来的数是不是已经在集合<em>中</em>rn p0=p0->link;rn if(p0==NULL)//不在集合<em>中</em>的情况rn rn p2=new Set;//添加n1到集合<em>中</em>rn if(p2!=NULL)rn rn p2->number=n1;rn p2->link=top;rn top=p2;rn rn else coutlink;rn if(p3==NULL)//集合<em>中</em>没有n2rn coutlink;rn p4->link=p3->link;rn delete p3;rn coutlink;rn rn while(p2!=NULL)rn rn p3->push(p2->number);rn p2=p2->link;rn rn return *p3;rnrnSet Set::operator -(Set &s2)rn rn return s2;rnrnSet Set::operator *(Set &s3)rnrn Set *p5,*p6,*p7;rn p7=new Set;rn p5=s3.top;rn p6=top;rn while(p5!=NULL)rn rn if(p6->get_value(p5->number))rn continue;rn else p7->push(p5->number);rn p5=p5->link;rn rn while(p6!=NULL)rn rn if(p5->get_value(p6->number))rn continue;rn else p7->push(p6->number);rn p6=p6->link;rn rn return *p7;rnrnint main()rnrn Set set;rn Set set1,set2,temp;rn int flag,num;//变量flag用于决定执行pop,push,show操作rn dorn rn cout<<>flag;rn if(flag==1)rn rn cout<>num;rn cout<>num;rn cout<
关于模板重载运算符问题
有如下的模板类rnrntemplaternclass CTemprnrnprivate:rn int g;rnpublic :rn CTemp():g(i)rnrn //例如,我可以<em>重载</em>类型转换的<em>运算符</em>rn operator int() return g ;rn rn rn;rnrn//这时候 ,我可以这样rnCTemp aTemp2;rnrnint i ;rni=aTemp3; //这时候i的值是 2;rnrn//如果我想如下这样做,应该怎样定义?rnCTemp aTemp3;rnaTemp3 = aTemp2;//这里,其实就是实现一个类型转换的<em>运算符</em>,应该怎样定义?
一个关于重载运算符问题.
我在类<em>中</em><em>重载</em>了++<em>运算符</em>,一个是前置,一个是后置的.rn<em>const</em> SimpleCircle & SimpleCircle:: operator++();rn<em>const</em> SimpleCircle SimpleCircle::operator++(int flag);rnrn但是却不能如下调用:rnSimpleCircle i;rni.operator++(int);rnrn却可以 rni.operator++();rnrn那后置的++<em>运算符</em>不能显式的调用吗.rn
复制构造函数的const参数问题
最近学习写了一个复制构造函数,有一些疑问rn[code=c]rnclass testrnprivate:rn int a;rnpublic:rn test();rn test(<em>const</em> test& T)rn a = T.a;rn ;rn ~test();rn int getdate();//返回a的值,实现我就不写了rn[/code]rn我这样写是可以编译通过的,我这样写是对的吗?rn[color=#FF0000]我想问的是,复制构造函数可以直接调用传进来的T的私有变量?[/color]rn[code=c]rnclass testrnprivate:rn int a;rnpublic:rn test();rn test(<em>const</em> test& T)rn a = T.getdata();rn ;rn ~test();rn int getdate();//返回a的值,实现我就不写了rn[/code]rn我这样写就会编译报错。rn[color=#FF0000]我想问的是,是因为<em>const</em><em>参数</em>不能调用函数吗?这样写为什么不对呢?[/color]
关于重载运算符的两个问题
我<em>重载</em>了一个乘法<em>运算符</em>:rn[code=C/C++][/code]Matrix& Matrix::operator*(double value)rnrn Matrix temp2(this->Rows,this->Cols);rn temp2=*this;rn for(int i=0;iRows,this->Cols);rn temp2=*this;rn for(int i=0;i
关于重载运算符->的问题
读c++primer时,发现这样一个<em>问题</em>;原文如下rnpoint->action();rn由于优先级规则,它实际等价于编写:rnrn (point->action)();rnrn换句话说,我们想要调用的是对 point->action 求值的结果。编译器这样对该代码进行求值:rnrn如果 point 是一个指针,指向具有名为 action 的成员的类对象,则编译器将代码编译为调用该对象的 action 成员。rnrn否则,如果 action 是定义了 operator-> 操作符的类的一个对象,则 point->action 与 point.operator->()->action 相同。即,执行 point 的 operator->(),然后<em>使用</em>该结果重复这三步。rn否则,代码出错。rnrn<em>问题</em>:为什么point->action 与 point.operator->()->action 相同 rn我感觉应该与point.operator->()action相同。rnrn
初学者关于重载运算符问题
#includernusing namespace std;rnclass numrnrnpublic:rn num()n=1; //修改这一行rn ~num()rn int get()<em>const</em>return n;rn void set(int x)n=x;rn void add()n++;rn num operator++()rn rn ++n;rn num t;rn t.set(n);rn return t;rn rnprivate:rn int n;rn;rnint main()rnrn num i;rn cout<
关于重载运算符函数的问题
我在vc6下运行以下程序老出现错误,怎么回事啊?怎么改进?rn程序如下:rn#include rn#include rnusing namespace std;rnrnclass three_d rn int x, y, z; rnpublic:rn three_d() x = y = z = 0; rn three_d(int a, int b, int c) x = a; y = b; z = c; rn rn three_d &operator+(int a) rn x += a;rn y += a;rn z += a;rn return *this;rn rn rn friend ostream &operator<<<< obj.x << ", ";rn stream << obj.y << ", ";rn stream << obj.z << "\n";rn return stream; rnrnrnbool operator< (b.x + b.y + b.z);rnrnrnbool operator==(three_d a, three_d b)rnrn return (a.x + a.y + a.z) == (b.x + b.y + b.z);rnrnrnint main()rnrn vector v;rn int i;rn for(i=0; i<10; i++)rn v.push_back(three_d(i, i+2, i-3));rn for(i=0; i
关于重载运算符
如果我已经定义了如下的函数rnbool operator>(<em>const</em> double& value, <em>const</em> CBox& aBox)rn return value > aBox.Volume(); rnrn那么<em>参数</em>顺序变换rnbool operator>(<em>const</em> CBox& aBox, <em>const</em> double& value)rn return value < aBox; rnrn这里的aBox不再是aBox.Volume会影响程序的正常工作吗?rnrn我在书上看到了这个写法,但是书上没有说明.... 此写法可行么?rnrn谁给我解释一下~~~~rnrn3Q3Q
关于const作为参数传入报错的问题
一个类的成员函数:rnclass Arnrn .....rn A::drawSomething([color=#FF0000]<em>const</em>[/color] Qpainter &painter,....)rn rn painter.drawLint(pointf2,pointf1);//此处报错148:41: error: passing ‘<em>const</em> QPainter’ as ‘this’ argument of ‘void QPainter::drawLine(<em>const</em> QPointF&, <em>const</em> QPointF&)’ discards qualifiersrn rnrnrn当把<em>const</em>去掉后,编译成功。rn<em>问题</em>:这个错误产生的原因,是QPainter不能作为常量吗?rn
关于参数修饰符const的用法
我最近在自学C++,现在我有一个看书时产生了一个疑问,书上定义了一个叫Money的类rnclass Moneyrnrn public:rn friend Money add(<em>const</em> Money& amount1,<em>const</em> Money& amount2);rn ……rn private:rn ……rn double get_value() <em>const</em>;rn void output(ostream& outs) <em>const</em>;rn ……rnrn我想问一下,什么时候<em>const</em>放在<em>参数</em>前面,什么时候<em>const</em>放在函数声明的后面
const参数
int hello(char a[]) 和int hello(<em>const</em> char a[])<em>中</em><em>参数</em>有什么区别?rn
关于重载运算符<
存在以下程序,我想针对复数Complex类<em>重载</em><em>运算符</em>j=j;rn rn ostream operator<<
关于重载运算符<<
是这样,我写了一个类,而且<em>重载</em>定义了<em>运算符</em> <<
C++重载运算符关于友元函数的问题
用C++练习<em>重载</em><em>运算符</em><>时,写了两个文件:overload.h和overload.cpp。rn写了一个Time类,在overload.h<em>中</em>的声明是:rn[code=C/C++]class Time rnprivate:rn int hour;rn int minute;rn int sec;rnpublic:rn friend istream& operator>>(istream&,Time &);rn friend ostream& operator<>(istream& input,Time &t) rn cout<>t.hour>>t.minute>>t.sec;rn return input;rnrnostream& operator<<
关于模板类重载运算符的一个问题
# include rn# include rn# include rnrnusing namespace std;rntemplate rnclass mittelrn friend ostream &operator<<<<<<<
const参数const返回值与const函数 .
include 2 #include 3 using namespace std; 4 5 class person 6 { 7 private: 8     int id; 9     string name; 10 public: 11     person(int id, string name):id(id), name(name) 12     { 13  
(转)const参数const返回值与const函数
原文地址:http://04051051.blog.163.com/blog/static/8600749320103100716140/          在C++程序<em>中</em>,经常用<em>const</em> 来限制对一个对象的操作,例如,将一个变量定义为<em>const</em> 的:  <em>const</em>  int  n=3; 则这个变量的值不能被修改,即不能对变量赋值。        <em>const</em> ...
重载运算符operator int() const是什么意思?
定义了一个类class1:rnrnclass class1 rnrnpublic:rn class1();rn virtual ~class1();rnrn operator int() <em>const</em>rn rn return i;rn rnrnprivate:rn int i;rnrn;rn<em>重载</em><em>运算符</em>operator int() <em>const</em>是什么意思?rn怎么去<em>使用</em>这个<em>重载</em>的<em>运算符</em>?rn
关于const形参的使用
定义<em>const</em>的指针将不能修改指针指向的值,但是可以修改传递给指针的那个变量的值。例如程序1rn程序1rn#includernusing std::cin;rnusing std::cout;rnusing std::endl;rnint main()rnrn int a(10),b(20);rn <em>const</em> int* _INT1=&a,*_INT2=&b;rn cout<<<<<
关于const使用
C语言<em>中</em><em>const</em> 的一些简单介绍
关于的const使用
一个类的声明<em>中</em>,public关键字下rn<em>const</em> string& get_AiossHome() <em>const</em>;rn前面的<em>const</em>和后面的<em>const</em>有什么区别啊?
关于const和指针的使用
请问指向常量的指针,常指针,指向常量的常指针之间的区别,最好能举列说明,非常感谢。
关于const使用规范
用法1:对数组,数据的常量化 #include int main(int argc,char* argv[]) { char <em>const</em>*pi="abc"; pi++; pi[0]='f';//[Error] assignment of read-only location '* pi'提示为不能改变指针pi<em>中</em>的数值  char* <em>const</em> p="bc"; // p++;
c++关于const使用
<em>const</em> char get(int index) <em>const</em>;rn为一个类的成员函数,此句是加两个<em>const</em>,有什么意义?如果去掉第一个<em>const</em>有什么意义;及去掉第二个<em>const</em>又有什么意义?rn鄙人学的不好,望各位多多指点
请教::关于const使用
我不太会用<em>const</em>,编程时,能不用就不用,以至现在一用就错,rn还请高手写几个简单程序,讲讲<em>const</em>的基本用法
【C++】关于const使用
摘自《effective c++》条款03 <em>const</em>可以修饰classes外部的global或namespace作用域<em>中</em>的常量、或文件、函数、或区块作用域(block scope)<em>中</em>被声明为static的对象。还可以修饰classes内部的static和non-static成员变量。<em>const</em>对指针和迭代器的应用面对指针,你可以指出指针自身、指针所指物,或两者都(或都不)是<em>const</em>。char g
C++关于Const使用
int getx() <em>const</em> {return x;}; C++ 这句<em>中</em>的 <em>const</em>是什么作用!
类指针使用重载运算符问题
模板类继承模板类时,派生类调用基类成员或成员函数是必须用this指针指出。 基类指针调用派生类成员函数时,需要转型。 struct cc { int a; cc() :a(10) {} }; class foo { public: cc* arr; foo() { arr = new cc[10]; } cc&amp;amp; operator[](int i) { retu...
C++重载运算符需要是const的情况
#include class twelfth_class_1{ int i; public: twelfth_class_1(int ii=0 ){ i = ii; } <em>const</em> twelfth_class_1 operator+(<em>const</em> twelfth_class_1 &tc1)<em>const</em> { twelfth_class_1 x(this->i+tc1.i); retu
结构体内重载运算符const有什么意义
为比较结构体变量的大小,<em>重载</em>小于符号:rnrn[code=c]rnbool operator< (<em>const</em> student &std1) <em>const</em>rn[/code]rnrn<em>参数</em>内部的<em>const</em>是为了防止引用变量被改动,那么外面的那个<em>const</em> 又有什么意义呢,求解啊
关于creat参数const char *pathname的问题
int creat(<em>const</em> char *pathname,mode_t mode)函数<em>中</em>的第一个<em>参数</em>为<em>const</em>型,即自己理解为该必须是一个字符串常量,但是自己做实验时,当传进一个char buf[]或一个char *p 也创建成功,何故?
关于重载运算符new和delete的问题
[code=C/C++][/code]rn<em>问题</em>貌似有点多,请各位大侠耐心指导一下,拜托了rn#includern#includern#includernusing namespace std;rnrnclass locrnrnpublic:rn loc();rn loc(int lg,int lt)longtitude=lg;latitude=lt;rn void display()rn rn cout<display();rn delete p;rn delete q;rn delete r;rn return 0;rn
重载运算符问题
写一个冒泡算法,是泛型的, 其<em>中</em>需要<em>重载</em><em>运算符</em>“<(T a, T b)rn rn 。。。。。。。。。。。。rnrn rnrnrnpublic static void BubbleSort2(T[] a, int n)rnrnrn...........................rnrnrnrnrnrnrn请问正确的<em>重载</em>是什么样的的?rnrnrnrn另外,<em>重载</em>为什么必须是static 来修饰?rnrnrnrnrnrn
重载运算符问题
ostream& operator<<<
重载运算符问题
<em>问题</em>一:为什么<em>重载</em>‘>>’和‘<<’,只能定义为友元函数 或者 普通函数,成员函数却不行??rn<em>问题</em>二:[code]Complex operator +(int & i, Complex & c)rn return Complex(i+c.real,c.image);rn Complex operator +( Complex & c,int & i)rn return Complex(i+c.real,c.image);rn [code/]rn 为什么这两个<em>运算符</em><em>重载</em>函数不能同时为成员函数?
重载运算符问题
[code=C/C++]#includern#includern#includernclass vectorrnrnpublic:rn vector(int size=1);//默认的构造函数;rn vector(int *,int );rn vector( vetor&);rn ~vector();rn int &operator[](int i);rn int operator()();rn vector&operator=(vector&);rn friend vector operator+(vector&,vector&);rn friend ostream&operator <>(istream&,vector&);rnprivate:rn int *v;rn int len;rn;rnvector::vector(int size)//带有默认<em>参数</em>的构造函数,下面的是构造函数的<em>重载</em>rnrn if (size100)rn rn cout<<<<>(istream&input,vector&obj)rnrn for(int i=0;i>obj[i];rn return input;rnrnvoid main()rnrn int k1,k2,k3;rn cout<<>k1;rn vector*A=new vector(k1);rn cout<<>*A;rn cout<<>k2;rn vector*B=new vector(k2);rn cout<<>*B;rn cout<<>k3;rn vector*C=new vector(k3);rn *C=*A+*B;rn cout<<<<<<<<
重载运算符= 的问题
我要<em>重载</em>一个类的等号运算,使得能够进行像下面这样的操作:rn int iVal = Obj;rnrn我本来想这样写,(用全局函数)rnint operator=(int iVal,CObj obj)rnrn //....rnrnrn可编译老是有错,怎么搞的?
关于constconst reference parameter使用的大不解
一、<em>const</em> reference parameter<em>使用</em>的代价太大、作用太小?rn我在读essential c++<em>中</em>,看到<em>const</em> reference<em>参数</em>的<em>使用</em>,比如某class member function:rnint sum(<em>const</em> TirClass &tir)rnrn int beg_pos = tir.beg_pos();rn int length = tir.length();rn int sum=0;rn for (int ix=0;ix
重载运算符问题
关于<em>重载</em>操作符,请高手指明下列各语句的作用好吗?rnostream &operator<< return out;rnrnrncout<< return 0rnrn
问题">STLstring重载运算符"的问题
我看各类STL的书籍介绍说string<em>重载</em>了<em>运算符</em>"<em>运算符</em>,rn这时怎么回事?rnrn如果我要实现str1
C++ const使用
1、<em>const</em>可以定义常量,编码<em>中</em>尽量<em>使用</em><em>const</em>代替define定义的常量 2、<em>使用</em><em>const</em>保护<em>参数</em> void fun(<em>const</em> int a) { a=10;//compile error } 3、<em>const</em>引用作为<em>参数</em>,可以提高效率,不用每个<em>参数</em>都会进行拷贝操作。 4、类成员函数后面加上<em>const</em>,该函数不会修改类<em>中</em>的数据成员...
c++const使用
c++<em>中</em>关于<em>const</em>的<em>使用</em>的各种<em>问题</em>,基本全了!
C++const使用
分析,<em>const</em>对象、普通对象和普通函数、<em>const</em>函数之间关系 class Test { public: void fun1() { cout &amp;amp;lt;&amp;amp;lt; &amp;quot;普通函数fun1&amp;quot; &amp;amp;lt;&amp;amp;lt; endl; } void fun1() <em>const</em> { cout &amp;amp;lt;&amp;amp;lt; &amp;quot;<em>const</em>函数
C++const使用
本文详细介绍了C++<em>中</em><em>const</em>的<em>使用</em>方法,不得不看哦!假如您觉得好的话,请给5分哦,免费下载!
iOS const使用
// <em>const</em> 在 * 的前面 // int a = 10; // int b = 20; // int <em>const</em> *c = &amp;amp;a; // c = &amp;amp;b; //// *c = 40; error: read-only variable is not assignable // cout &amp;lt;&amp;lt; *c&amp;lt;&amp;lt;end...
类成员函数const使用
类成员函数<em>中</em><em>const</em>的<em>使用</em> 一般放在函数体后,形如:void fun() <em>const</em>; 任何不会修改数据成员的函数都因该声明为<em>const</em>类型。如果在编写<em>const</em>成员函数时,不慎修改了数据成员,或者调用了其他非<em>const</em>成员函数,编译器将报错,这大大提高了程序的健壮性。如: class Stack { public: void Push(int elem);
C++const使用
    <em>const</em> 意为常数,总的来说就是被<em>const</em>修饰过的数无法进行修改。   好处: 1、保护数据,增强代码的健壮性。  2、便于进行类型检查。     <em>const</em>常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。 3、可以节省空间,避免不必要的内存分配。 4、提高了...
函数参数使用const
转自:http://blog.csdn.net/mathe/article/details/1271519 在函数的<em>参数</em><em>中</em><em>使用</em><em>const</em>,可以让编译器知道在函数调用过程<em>中</em>,对于某个<em>参数</em>不会修改数据,从而可以提供给编译器更多的优化机会。 比如标准函数 char *strcpy(char *dst, <em>const</em> char *src); 这里,第二个输入<em>参数</em><em>使用</em><em>const</em> char *src,而
重载运算符问题
如何才能在下面的程序<em>中</em>,执行这个运算 c=1.6+b; rn 我在 complex 类<em>中</em>添加rnrn complex operator + (double d,complex& s)rn rn return s+d;rn rnrn 编译就会出错。rn rnrnrn#include rnrnclass complexrnrn int a;rn int b;rnpublic:rn complex(int x,int y) rn rn a=x;rn b=y*10+0.5;rn while(b>=100)rn rn a++;rn b-=100;rn rn rnrn complex(double value)rn rn a=value;rn b=(value-a)*100.0+0.5;rn rnrn complex operator + (complex& s)rn rn unsigned int j=a+s.a;rn unsigned int y=b+s.b;rnrn while(y>=100)rn rn j++;rn y-=100;rn rnrn return complex (j+y/100.0);rn rnrn void display()rn rn cout<<=100)rn rn y++;rn j-=100;rn rnrn return complex ((a+y)+(b+j)/100.0);rn rnrn;rnrnvoid main()rnrn complex a(2,5),b(7,8),c(0,0);rnrn c=a+b; //c=10.3rn c=complex(4.1)+b; //c=11.9rn c=a+3.4; //c=5.9rn //c=1.6+b;rn
重载运算符问题
[code=C/C++]#include rn#include rnusing namespace std;rnrnclass A rn char name[32];rn int areacode;rn int prefix;rn int num;rnpublic:rn A(char *s,int i,int j,int k)rn rn strcpy(name,s);rn areacode = i;rn prefix = j;rn num = k;rn rn friend ostream &operator<<<>'不明确?该怎么改啊,让它能够明确点!!!!哈哈
关于C++const使用 谢谢
当我试图把这些<em>const</em>都去掉并且进行合适的修改的时候 我发现同样可以运行出想要的结果 rnrn但是好多个<em>const</em>的用途我并不十分清楚, 可以请大大们帮我解释一下下面每个<em>const</em>的用途么 呵呵有点多 相同<em>使用</em>方式的说一次就可以了 谢谢拉rnrn另外加上这些<em>const</em>之后带来的好处都有哪些呢 谢谢rnrnrnrnrn#include rn#include rnusing namespace std;rnrnclass Pet rn string pname;rnpublic:rn Pet(<em>const</em> string& name) : pname(name) rn virtual string name() <em>const</em> return pname; rn virtual string description() <em>const</em> rn return "This is " + pname;rn rn;rnrnclass Dog : public Pet rn string favoriteActivity;rnpublic:rn Dog(<em>const</em> string& name, <em>const</em> string& activity)rn : Pet(name), favoriteActivity(activity) rn string description() <em>const</em> rn return Pet::name() + " likes to " +rn favoriteActivity;rn rn;rnrnvoid describe(Pet &p) rn cout << p.description() << endl;rnrnrnint main() rn Pet p("Alfred");rn Dog d("Fluffy", "sleep");rn describe(p);rn describe(d);rnrnrnrn
请教重载运算符const A & operator(A &j);的&有什么用?
<em>const</em> A & operator(A &j); 是声明 其<em>中</em>的&是干什么的? 为什么不用*来定义呢
关于类static const变量的使用
#includernusing namespace std;rnclass basernrnpublic:rn static <em>const</em> int vs=3;rn;rnvoid main()rnrn cout<
关于DTS数据导出使用参数问题?
我要在DTS<em>中</em>把几个查询(注:在导出时要<em>使用</em><em>参数</em>,根据<em>参数</em>查询数据导出.)导出到VFP的相应表<em>中</em>,请问要怎么实现.比如我<em>使用</em><em>参数</em>1,就查询一月的数据导出到VFP.请说具体点,谢谢!
关于SQL参数使用问题.
在存储过程<em>中</em><em>使用</em>了<em>参数</em>,比如rnSELECT * FROM tbA rnWHERE name = @UserName rnAND pwd = @Passwordrnrn在登陆界面<em>中</em>,从TextBox<em>中</em>取Name和Password内容,前去数据库里校验.当名字和密码都是正确的时候,没有<em>问题</em>.可是当不输入内容直接提交,或者名字/密码错误的时候,出现:rnrn"未将对象引用设置到对象的实例。 "的编译错误.rnrn望大家能够指教.部分程序如下:rn
使用SQL关于参数问题
我<em>使用</em>了TQUERY控件,但<em>使用</em><em>参数</em>时出了<em>问题</em>,我想用<em>参数</em>指定数据库的名称rnQUERY1。SQL。ADD('SELECT * FROM :name');rnQUERY1.PARAMBYNAME('NAME').ASSTRING = '学号。mbd' rn但老是出错啊rn请问是怎么会事
关于类const
看到一个这样的定义,rnclass sTrn public:rn double avg() <em>const</em>;rn ...rnrn想知道这个定义究竟是什么意思呢??rn请详细给个解释吧,多谢了。
C++关于const
int num1 = 1; int num2 = 2; <em>const</em> int *a; a = &num1; //-----------常量指针------------ //1、不能通过*a间接改变num1的值 //*a = 3;error //但可以直接改变变量的值 num1 = 3; //2、常量指针可以改变指向的地址
重载运算符与动态库的使用
&amp;lt;&amp;lt;只能<em>使用</em>友元函数的形式<em>重载</em>,+<em>运算符</em>可以友元也可以成员函数方式<em>重载</em>,但是<em>参数</em>的个数就不同了。以友元函数方式<em>重载</em>+<em>运算符</em>是两个<em>参数</em>,以成员函数<em>重载</em>只有一个<em>参数</em>。 point.h: #include &amp;lt;iostream&amp;gt; using namespace std; class Point { public: Point(); Point(int x, ...
C++重载运算符问题,求助`````
看书过程<em>中</em>遇到不懂得代码 如下....rn[code=C/C++]rnclass CDaternprivate:rn int m_nDay;rn int m_nMonth;rn int m_nYear;rn void AddDays(int nDayToAdd)rn m_nDay+=nDayToAdd;rn if(m_nDay>30)rn AddMonths(m_nDay/30);rn m_nDay%=30;rn rn rn void AddMonths(int nMonthToAdd)rn m_nMonth+=nMonthToAdd;rn if(m_nMonth>12)rn AddYears(m_nMonth/12);rn m_nMonth%=12;rn rn rn void AddYears(int nYearToAdd)rn m_nYear+=nYearToAdd;rn //private<em>中</em>是定义的 日期加减 不管31天的实际rnpublic:rn CDate(int nDay,int nYear,int nMonth):m_nDay(nDay),m_nMonth(nMonth),m_nYear(nYear)rn CDate & operator ++() //为什么要用引用传递???rn AddDays(1); //这个地方AddDays(1) 是对谁进行操作???rn return *this; //这个地方的this 是指的?指 原对象?rn rn CDate operator ++(int) //传入的<em>参数</em>有什么作用???rn CDate mReturnDate(m_nDay,m_nMonth,m_nYear);rn AddDays(1); //为什么 在类<em>中</em> 对象用方法 不需要用 mReturnDate. 呢`??rn return mReturnDate;rn rn void DisplayDate()rn std::cout<
使用友元函数重载运算符
1. 声明友元函数能让非类内的成员函数访问到类内的私有数据成员   2. 为什么要用友元函数来<em>重载</em><em>运算符</em>?     首先如果是在类内<em>重载</em>的<em>运算符</em>函数,都默认有一个  *this 指针,所以此时对二元<em>运算符</em><em>重载</em>的话只能放一个形参。     比如:    int A =0;     A = B * 5;  // B是一个自定义的类 在类内<em>重载</em> * <em>运算符</em>  就相当于 A = B.opera...
重载运算符及STL使用体会
<em>重载</em><em>运算符</em>好处:<em>使用</em>用户自定义数据以一种更简洁的方式工作(套话 套话)在我看来<em>重载</em><em>运算符</em>为的是让原本的一系列<em>运算符</em>+-*=()等,在自定义类<em>中</em>可以<em>使用</em>,来更方便的编写程序。首先我们先了解一下不能<em>重载</em>的<em>运算符</em>.   ::   ?:   .*   sizeof                                     //很不可思议的是sizeof竟然是<em>运算符</em>然后还是来看一下<em>重载</em><em>运算符</em>的...
基于p2p的文件共享系统下载
点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。但P2P并非纯粹的点对点技术,实为解作群对群(Peer-to-Peer)。在虚拟私人网络VPN (Virtual Private Network)中,也有P2P这个名称,它才是真正解作点对点(Point-to-Point)。 相关下载链接:[url=//download.csdn.net/download/chen5135053/2854297?utm_source=bbsseo]//download.csdn.net/download/chen5135053/2854297?utm_source=bbsseo[/url]
An USB PIC_Programmer下载
This file have all files to make An USB PIC_Programmer have been test and work fine 相关下载链接:[url=//download.csdn.net/download/wang_chuan99/4325081?utm_source=bbsseo]//download.csdn.net/download/wang_chuan99/4325081?utm_source=bbsseo[/url]
FOX LOGO 富士康主板LOGO更改下载
上次的是945以下的板子,这个是支持H61之类,看下面支持的类型。 5. Supported OS and Platforms ============================= - Foxconn MB - Windows XP - Windows Vista - Windows 7 6. Qualification Status ======================= The following environment was used to qualify this product version: - MB: H61 series - Oprera 相关下载链接:[url=//download.csdn.net/download/liangian/6419957?utm_source=bbsseo]//download.csdn.net/download/liangian/6419957?utm_source=bbsseo[/url]
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview
我们是很有底线的