...*”是作为友元函数重载的,“+”是作为成员函数重载的,则该表达式...

作者&投稿:初诚 (若有异议请与网页底部的电邮联系)
~ 【改正后的内容】:
1. 在C++中,如果想要重载表达式x * y,其中“*”作为成员函数重载,则应定义一个成员函数operator*,其形式为x.operator*(y)。
2. 同样地,如果“*”作为友元函数重载,则需要定义一个友元函数operator*,其形式为operator*(x, y)。
3. 对于表达式x + y,如果“+”作为成员函数重载,则应定义一个成员函数operator+,其形式为x.operator+(y)。
4. 如果“+”作为友元函数重载,则需要定义一个友元函数operator+,其形式为operator+(x, y)。
请注意,每个运算符的重载函数应符合运算符的功能和参数顺序。


为类Matrix重载下列运算符号时,只能作为Matrix类成员函数重载的运算符是...
【答案】:B B。【解析】赋值运算符只能作为重载函数的成员函数,其他运算符都可以作为友元函数重载。

C++ 一个类的成员函数作为另一个类的友元函数,为什么错了?
成员函数是可以设定为其他类的友元的,代码改成这样就行了;class a;class b { public:void show(a & t);};class a { int i;public:friend void b::show(a & t);};void b::show(a &t){ cout << t.i << endl;}

“将运算符作为非成员函数重载时必须定义为友元”这句话错在哪里?_百...
运算符重载函数是在类的外部定义的,不定义为友元函数时,这个运算符重载函数只能访问类的公有数据成员,而不能访问类的私有数据成员;定义为友元函数时,既可以访问类的公有数据成员,也可以访问私有数据成员。所以当类中的数据成员是公有时,不用定义为友元函数~...

为什么插入运算符>>只能声明重载为友元函数
因为类的成员二元运算符重载要求运算符左操作数为运算符函数的第一个参数,而流类库中的>>则要求第一个参数为ostream的引用,所以不能作为类成员,只能作为友元.可能比较难理解,应用时知道把它重载为友元就可以了

关于main作为友元函数的问题
\/\/先说总结吧 \/\/1 函数应该销毁传进来的值 \/\/2 函数应该销毁自己造的值 \/\/3 函数不能销毁进来的引用 \/\/4 复制值时如果这个值的类型有以自身类型的引用为唯一参数的构造函数,则复制 \/\/ 时将采用它进行复制,否则直接复制内存 \/\/5 制造引用不需要构造新的值 \/\/6 参数可以被凭空...

C++友元函数 运算符重载
倘若你是用vc6做编译器的话,那么代码的开头应该写成:include<iostream.h> 不写成:include<iostream> using namespace std;就是用上面的一行替代下面的两行。因为vc6这个编译器不支持在iostream做头文件的时候运行友元函数。

为什么赋值运算符只能作为成员函数进行重载,而不能作为友元函数...
C++规定=,[ ],(),->这四个运算符只能被重载为类的非静态成员函数,其他的可以被友元重载,主要是因为其他的运算符重载函数都会根据参数类型或数目进行精确匹配,这四个不具有这种检查的功能,用友元定义就会出错

C++ 一个类的成员函数作为另一个类的友元函数,为什么错了?
顺序应该是这样:\/\/class Teacher; \/\/这里编译不成功,提示incomplete type 'Teacher' named in nested name specifierclass Student;\/\/addclass Teacher{public:void printStudentInTeacher(Student &s);};class Student{friend void printStudent(Student grade);friend void Teacher::printStudentIn...

C++中,为什么“一般而言,将算术和关系操作符定义为非成员函数”?
看书上的解答是与类型转换有关系的,如果为成员函数,那么你当2个不同类型相加的时候,你必须返回的是你的左边的类型.而在+正确的操作中,会发生算术转换,将低位的转换为高位的运算,返回高位的类型 如果你是成员函数,那么必须返回的是你的类类型,而不是高位的类型,这样应该会造成数据丢失 ...

一道C++题目,求详解
A 答案 :this指针是在指向类成员本身,但是友元函数并不在类里面,而是在类外面。B 答案 :友元函数不能直接访问类的成员,只能访问对象成员。所以在实参时要给出访问的对象 C 答案 :一个类的成员函数也可以作为另一个类的友元,但必须先定义这个类 D 答案 :必须在类的说明中说明友元函数,说明...

荔蒲县18890488871: C++友元函数的重载 -
郁胆诺尔: .......没错啊 就是中间几个括号的问题 补齐就行了 还有一个就是 我用DEV C main函数要求返回int型 #include <iostream> using namespace std; class CCounter { public: CCounter( ) { m_value = 0; } int operator++( ); int operator--( ); int operator( )( );...

荔蒲县18890488871: C++友元函数重载“+=”怎么写啊麻烦哪位大神帮帮忙呗,只用写作为友元函数的重载函数 -
郁胆诺尔: friend yourclasstype& operator+=(const yourclass& lhs, const yourclasstype& rhs) 第一个参数为const还能成功重载+=吗?class Time{ private: int min; public: Time(int a) : min(a) {} friend Time& operator+=(Time &left, const Time &right); }; Time& ...

荔蒲县18890488871: c++中双目运算符重载为友员函数 -
郁胆诺尔: =是双目,可以重载成友元形式 []是单目的

荔蒲县18890488871: 重载的运算符,调用形式C++ -
郁胆诺尔: 若是重载为成员函数,D) a.operator++() 与之对应,后置++的等效形式为a.operator++(0)若是重载为友元函数,B) operator++(a) 与之对应,后置++的等效形式为operator++(a, 0)

荔蒲县18890488871: 运算符重载! -
郁胆诺尔: 运算符重载函数的形式是: 返回类型 operator 运算符符号 (参数说明) { //函数体的内部实现 }运算符重载函数的使用主要分为两种形式,一种是作为类的友元函数进行使用,另一种则是作为类的成员函数进行使用. 下面是一个例子:#include...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网