• 首页>范文 > 范文
  • 重载怎么写

    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的私有成员,但有了指针后仍然可以访问。

    发表评论

    登录后才能评论