San*_*chy 5 c++ constructor class
如果我有一个具有这样的属性的类:
struct MyClass {
double **arowofpointers;
int capacity;
};
Run Code Online (Sandbox Code Playgroud)
现在,如果任务说"确保主函数中的这行代码是合法的:
MyClass a(10); //makes a variable whose type is MyClass that has the capacity of 10
Run Code Online (Sandbox Code Playgroud)
但请确保main函数中的以下代码行不合法:
MyClass a=10;
Run Code Online (Sandbox Code Playgroud)
但是,主函数中代码的以下行应该是合法的:
a=b+c;
Run Code Online (Sandbox Code Playgroud)
其中,a,b和c都是类型为MyClass的变量.
我应该制作哪些构造函数?有什么我应该设置删除或什么?
lub*_*bgr 13
构建类型的实例MyClass是这样
MyClass a(10);
Run Code Online (Sandbox Code Playgroud)
需要一个带整数参数的构造函数:
class MyClass {
public:
MyClass(int param);
// ...
};
Run Code Online (Sandbox Code Playgroud)
但是由于默认情况下构造函数是隐式的(这是不幸的),允许MyClass a = 10;,你需要明确它:
// This constructor must be called explicitly via MyClass(int)
explicit MyClass(int param);
Run Code Online (Sandbox Code Playgroud)
这将使编译器在遇到时抱怨MyClass a = 10;.
对于你的问题的操作部分,你可能想看看这个(以下简称"算术运算符"部分).