C ++类从基类和派生类设置/获取

时间:2017-05-19 21:53:46

标签: c++ class inheritance visual-c++ constructor

我该怎么办?

我在create 2中创建了一个基类(一个用于字符串,一个用于int数),在派生类(继承)中创建一个新的set(字符串名称),我想在参数化构造函数中组合它们。 / p>

感谢任何帮助,谢谢大家:)

  

这是我的代码示例:(它在参数化构造函数中显示错误)

#include <iostream>
#include <string.h>

using namespace std;

class Code
{
   protected:
      string letter;
      int number;
   public:
      string getletter();
      int getnumber();
      void setletter(string letter1);
      void setnumber(int number1);
};

void Code::setletter(string letter1)
{
   letter=letter1;
}

void Code::setnumber(int number1)
{
   number=number1;
}

string Code::getletter()
{
   return letter;
}

int Code::getnumber()
{
   return number;
}

class Course : public Code
{
   private:
      string name;
   public:
      Course(string name1, string letter1, int number1);
      string getname();
      void show();  
};

Course::Course (string name1, string letter1,int number1) :
      setletter(letter1), setnumber(number1)    //Parameterized Constructor
{
   name=name1;
   letter=letter1;
   number=number1;
}

string Course::getname()
{
   return name;
}

void show()
{
   Course com("Object oriented programming","com",210);
   cout<<"Constructor >>>\n Course Name : "<< com.getname()<<"\n Course Code : "<< com.getletter() << com.getnumber()<<endl;
}

int main()
{
   show();
}

2 个答案:

答案 0 :(得分:0)

您可以在构造函数中调用它们

Course::Course (const string& name1, const string& letter1, const int number1) :
{
   name=name;
   setletter(letter1); // equivalent to letter=letter1 
   setnumber(number1);
}

您可以在Code类

中添加构造函数
Code(const string& letter, const int number);

并在课程构造函数中将其称为

Course::Course(const string& name1, const string& letter1, const int number1) 
: Code(letter1, number1), name(name1)
{

}

但我不确定你的要求是什么,如果你对你想要的东西更精确一点,那就太好了,谢谢。

答案 1 :(得分:-1)

构造函数的参数列表之后的:是'成员初始化列表'。

Course::Course (string name1, string letter1,int number1)
: name(name1), letter(letter1), number(number1) {  }