重载怎么写
1.运算符重载怎么写
关键字是operator
重载运算符
除了预先定义的运算功能之处,用户还可以通过类或者结构中的设置operator声明来实现运算符的用户定义运算功能,用户定义的运算符的优先级总是高于预定义运算符实现的优先级。只有当没有适用的用户定义运算符实现存在时,才会考虑预定义的运算符实现。
重载运算符时一般使用operator关键字,对于一元和二元运算符,它们重载函数的方法如下表所示。
序号 运算符 运算符重载函数
1 op x operate op(x)
2 x op operate op(x)
3 x op y operate op(x,y)
2.<<和>>的重载怎么写
这个估计要问一下C++之父了。。。
如果你要处理所有的情况的话,那么这个工作就很复杂了,不是一般人可以做的。
C++内置类型一般能够被>>;和<<;处理了,所以你要做的只能是对你的特定输入类型来处理。
比如:
ostream& operator>>(ostream& out, yourtype t)
{
//handle your code here
}
3.c++中<<运算符重载怎么写啊
class MyClass{
int member1;
string member2;
friend ostream& operator<<(ostream& out, const MyClass& myclass){
out<<member1<<member2;
return out;
}
}
大概就是这么写。也可以不重载为友元,而改用成员函数获取成员变量的值。
我们平常写cout<<a<<"sdfghj"<<endl;为什么能成立, 就是因为<<;在iostream 里进行了重载。
而 cout 是在 iostream 里定义的,ostream类的对象。
在重载<<;时,返回值类型是ostream&, 第一个参数也是ostream& 。也就是说,表达式cout<<a的返回值仍是 cout。因此cout<<a<<"sdfghj"才能成立。
4.c++运算符重载,怎么写啊
10 public:
11 S(int i = 0, int j = 0):n(n), m(m){}
12 friend S operator+(S& s, C& c)
13 {
14 c.i = s.n;
15 c.j = s.m;
16 }
S& operator =(S&a)
{
*this.i=a.i;
*this.j=a.j;
return *this;
}
5.运算符重载怎么写
关键字是operator 重载运算符除了预先定义的运算功能之处,用户还可以通过类或者结构中的设置operator声明来实现运算符的用户定义运算功能,用户定义的运算符的优先级总是高于预定义运算符实现的优先级。
只有当没有适用的用户定义运算符实现存在时,才会考虑预定义的运算符实现。 重载运算符时一般使用operator关键字,对于一元和二元运算符,它们重载函数的方法如下表所示。
序号 运算符 运算符重载函数 1 op x operate op(x) 2 x op operate op(x) 3 x op y operate op(x,y)。
6.写个重载
#include
using namespace std;
struct node{
int d;
node(int d): d(d){}
};
class A{
node *n;
public:
A(): n(new node(123)){}
node *operator ->(){
return n;
}
};
int main(){
A a;
cout d 的重载,同时也体现了指针的危险,破坏了封装性。n是A的私有成员,但有了指针后仍然可以访问。