类的构造函数的声明和定义并打印出私有和公共变量?

时间:2013-03-11 14:10:05

标签: c++ visual-studio class

我很难过,我现在正在用C ++学习课程,这里有问题,我必须声明和定义构造函数,我不知道我在做什么错,我试过但是无法得到结果请帮助< / p>

 #include <iostream>
 using namespace std;

 class exercise
 {
 public:
      //declaration: constructor of class exercise
      int public_var;
      int get_private_var();
 private:
      int private_var;
  };

 //definition: constructor of class exercise
 int exercise::get_private_var()
 {
      return private_var;
 }

 int main()
 {
      exercise object(2,3);
      int pub_var = object.public_var;
      int pri_var = object.get_private_var();
      cout << pub_var <<' '<<pri_var<<endl;
      return 0;
 }

4 个答案:

答案 0 :(得分:2)

示例构造函数将是:

class exercise
{
public:
  exercise(int,int);
  int public_var;
  int get_private_var();
private:
  int private_var;
};

//Constructor definition
exercise::exercise(int a, int b)
{
  public_var = a;
  private_var = b
}
//rest of member functions

答案 1 :(得分:0)

为了声明构造函数,你应该

class exercise
 {  
   public:
     //declaration: constructor of class exercise
     exercise();
     int public_var;
     int get_private_var();
   private:
     int private_var;

};

为了实现(通常在.cpp文件中) 你应该:

exercise::exercise()
{  
   //your code here
}
祝你好运

答案 2 :(得分:0)

get_private_var不是构造函数。当你执行object.get_private_var()时调用它的函数 - 它只是一个典型的成员函数。

构造函数是在构造对象时调用的函数(有道理,对吧?)。在您的情况下,它将在您执行时使用:

exercise object(2,3);

此行构造一个名为exercise的{​​{1}}对象,并将值object2传递给其构造函数。您似乎希望将这些值分配给3public_var成员。

首先,您需要声明构造函数:

private_var

如您所见,构造函数的声明与任何其他成员函数一样,但它没有返回类型。这是有道理的,因为返回类型显然是类本身。这里我指定了两个参数。

现在我们需要定义构造函数,类似于您定义class exercise { public: exercise(int, int); //declaration: constructor of class exercise int public_var; int get_private_var(); private: int private_var; }; 的方式,但同样没有返回类型:

get_private_var

然后你就完成了。此构造函数只是将传递给它的值分配给公共成员和私有成员。

但是,使用成员初始化列表实现此构造函数的方法略好一些:

exercise::exercise(int x, int y)
{
  public_var = x;
  private_var = y;
}

答案 3 :(得分:0)

以下是使用构造函数

构建类的方法
class a
{
public:
int pubvar;
a() //default constructor
{
pubvar =1;
privar =2;
}
a(int one, int two) //constructor with intializing
{
pubvar = one;
privar = two;
}
private:
int privar;
}

现在默认初始化是

a myclass;

并使用您的变量进行初始化

a myclass(4,2);

希望有所帮助