创建复制构造函数并在数组中使用它

时间:2018-10-30 21:35:20

标签: c++

这是我的第一个问题。 我会尽快解释我的问题。 我想要做的是我需要一个默认值和一个重载的构造函数。我正在创建一个程序来存储PC的系统规格。我需要获取要在程序中输入多少计算机规格。我在程序中最多可以有5个系统规格,因此,如果用户要输入2个系统规格,则应调用复制构造函数两次。我被困在for循环中,找不到要放在复制构造函数中的变量。任何帮助都会很棒。谢谢。

#include <iostream>
#include <string>
using namespace std;

class Computer{
private:
    string os;
    int storage;
    int memory;
public:
    Computer(){
        os = "FreeDOS PC";
        storage = 500;
        memory = 4;
    }
    Computer(){ // This is my copy constructor. What should i type in here?
        setOs();
        setStorage();
        setMemory();
    }
//    Set functions prototypes below.
    void setOs();
    void setStorage();
    void setMemory();
//    Get functions prototypes.
    string getOs();
    int getStorage();
    int getMemory();
};

//    Get functions below.
string Computer::getOs(){
    return os;
}
int Computer::getStorage(){
    return storage;
}
int Computer::getMemory(){
    return memory;
}
//    Set functions below.
void Computer::setOs(){
    cin>>os;
}
void Computer::setStorage(){
    cin>>storage;
}
void Computer::setMemory(){
    cin>>memory;
}

//  Main function.
int main()
{
    int num;
    cout<<"How many computers you want to specify? ";
    cin>>num;
    Computer arr[5];
    for(int i = 0 ; i < num ; i++)
    {
        cout<<"Enter specifications for PC #"<<i+1<<" : ";

    }
}

1 个答案:

答案 0 :(得分:-3)

这是复制构造函数的正确语法:

Computer (const Computer & oldcomputer ){}

甚至没有两个默认的构造函数。