#include <iostream>
class Cube {
public:
int side;
Cube(int side) {
Cube::side = side;
}
int calculate_volume() {
return side*side*side;
}
};
int main() {
int side;
std::cin >> side;
// dynamically create object with side as constructor parameter
Cube* cube {new int};
//SOMETHING IS WRONG HERE
//but how to pass and arguement
int volume = cube->calculate_volume();
std::cout << volume;
delete cube;
cube = nullptr;
return 0;
}
尝试过
Cube* cube {size} {new int}
//我不知道哈哈
将“Cube*cube {new int};”替换为“auto Cube = new Cube{side}”。
初始化时您正在传递 new int 。从语义上讲,您正在使用指向整数的指针初始化指向对象的指针。 要使用指向对象的指针初始化它,您需要调用 new ObjectConstructor(constructor args)。 例如 立方体*立方体 = 新立方体(侧面)