使用`.`运算符和使用常量关键字调用成员函数?

时间:2016-11-16 18:25:40

标签: c++ class

int getValue() const {return value;}有什么用? 以下程序中的行和int main中的测试t(20)是什么。它与

相同

Test t; t.Test(20);

程序如下:

#include <iostream>
using namespace std;

class Test 
{
    int value;

public:
    Test(int v = 0) {value = v;}
    int getValue() const {return value;}  
};

int main() 
{
    Test t(20);
    cout << t.getValue();
    return 0;
}

1 个答案:

答案 0 :(得分:1)

  

以下程序中int getValue() const {return value;}行的用途是什么......

它使您可以使用const Test const Test t(20); std::cout << t.getValue() << std::endl; 实例调用该函数,如:

Test t(20)
  

...和int main中的Test t; t.Test(20); 是什么。它与

相同
Test t(20)

不,您的替代代码无法编译。 Test调用此处定义的Test(int v = 0) {value = v;} 类的构造函数:

int c;
c = getchar();
if (c == '1')
{
// display greeting and name 4 times
for(i=1;i<=4;i++)
{
    printf("Hi, my name is Bridget\n");
}
}
if (c == '2')
{
// display countdown
for(i=10;i>=0;--i)
{
    printf("%d\n", i);
}
}
printf("Blastoff!");

您无法调用已构造实例的构造函数。