C++重载运算符问题
#include "iostream"using namespace std;
class MyClass
{
public:
MyClass()
{
n=0;
cout<<"默认构造函数...\n";
}
MyClass(int t)
{
n=t;
cout<<"默认带一个参数构造函数...\n";
}
~MyClass()
{
cout<<"默认析构函数...\n";
}
int get()
{
return n;
}
MyClass(MyClass&r)
{
n=r.get();
cout<<"复制构造函数\n";
}
private:
int n;
};
int main()
{
MyClass a(1), b(2);
a=b;
cout<<"a:"<<a.get()<<endl;
cout<<"b:"<<b.get()<<endl;
return 0;
}这次是关于赋值运算符的重载实现对象间的赋值运算。
我想问一下我在类中并没有声明一个重载=函数,编译器这个时候是不是默认提供了一个。
还有复制构造函数是不是只能用到对象的初始化时候上。{:1_1:}
我想问一下我在类中并没有声明一个重载=函数,编译器这个时候是不是默认提供了一个。
是的。
还有复制构造函数是不是只能用到对象的初始化时候上。
我们知道,复制构造函数是一种构造函数,构造函数智能用于初始化对象。所以,复制构造函数只能用于初始化对象。 仰望天上的光 发表于 2013-10-7 11:52 static/image/common/back.gif
我想问一下我在类中并没有声明一个重载=函数,编译器这个时候是不是默认提供了一个。
是的。
{:1_1:} 嘿嘿 又是你帮我解答问题了 感觉论坛好有爱啊 类的赋值好像有默认的,如果类中还包含有指针,用默认的赋值将可能导致一些问题
复制构造函数其实就是一个构造函数,构造函数的的功能就是初始化对象。
我也是一名新手,这是我的分析,不知道对不对:lol: 骇客不会飞 发表于 2013-10-7 12:32 static/image/common/back.gif
类的赋值好像有默认的,如果类中还包含有指针,用默认的赋值将可能导致一些问题
复制构造函数其实就是一个 ...
默认复制构造函数包含指针的话需要深层复制这个我知道
页:
[1]