Min*_*ech 1 c++ object dynamically-generated
我有这门课:
class foo{
public:
foo();
foo(const int& var);
foo(const foo& var);
~foo();
foo retSumOf(const foo& var1, const foo& var2);
private:
int a;
char* x;
};
Run Code Online (Sandbox Code Playgroud)
这个meber功能:
foo foo::retSumOf(const foo& var1, const foo& var2){
//Make somehow a foo object,
//lets name it 'result'
result.a = var1.a + var2.a;
return (result);
}
Run Code Online (Sandbox Code Playgroud)
我想在main中这样做:
main(){
foo a, b;
foo* c;
a.a = 1;
b.a = 2;
c = retSumOf(a, b);
cout << "sum =" << c->a;
}
Run Code Online (Sandbox Code Playgroud)
无需调用(重载)复制构造函数!
C++中是否有一种方法可以从函数动态创建对象并返回其地址?没有构造函数在调用retSumOf()结束时删除它?
为什么?
是的,你可以返回一个(智能)指针,就像杰里米说的那样,但你为什么要这样做呢?为什么不正确实现复制和移动功能?你已经有了一个构造函数; 按照五的规则,你应该实现其他四个函数,或者压制它们.