C++查询,如何创建动态对象并同时向构造函数传递值?

问题描述 投票:0回答:2
#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}

//我不知道哈哈

c++11 c++17
2个回答
0
投票

将“Cube*cube {new int};”替换为“auto Cube = new Cube{side}”。


0
投票

初始化时您正在传递 new int 。从语义上讲,您正在使用指向整数的指针初始化指向对象的指针。 要使用指向对象的指针初始化它,您需要调用 new ObjectConstructor(constructor args)。 例如 立方体*立方体 = 新立方体(侧面)

© www.soinside.com 2019 - 2024. All rights reserved.