班级和会员职能(初级)

时间:2012-04-10 04:58:48

标签: c++ class object member-functions

我正在阅读一本c ++书,我有几个问题。

1)在此示例中,void仅用于声明返回类型吗?

2)如果void导致它不将数据返回给调用函数,为什么它仍然显示消息“欢迎来到成绩簿!”?

3)创建一个简单的函数而不是创建一个对象是不是更容易?

#include <iostream>
using namespace std;

class GradeBook
{
public:
    void displayMessage()
    {
        cout << "Welcome to the Grade Book!" << endl;
    }
};

int main()
{
    GradeBook myGradeBook;
    myGradeBook.displayMessage();
}

3 个答案:

答案 0 :(得分:5)

  1. 这是此示例中的唯一用途。你也可以指向void(void *)。
  2. 你没有回复那条消息。你在打印它。在C ++中,方法和函数可能有副作用。一种可能的副作用是输出。
  3. 是的,在这种情况下。但是,这不是对象益处的现实例子。为此,请参阅许多地方的How do I describe Object-Oriented Programing to a beginner? Is there a good real-world analogy?

答案 1 :(得分:1)

  

void仅用于在此示例中声明返回类型吗?

是的,它表示displayMessage()不会将任何内容返回给它的来电者 它也可以用作void *,即:一个指向任何东西的通用指针,但在你的例子中没有以这种方式使用它。

  

如果void导致它不将数据返回给调用函数,为什么它仍然显示消息“欢迎使用成绩簿!”?

消息不会返回给函数的调用者,当控件在函数中并执行该特定语句时,消息将被定向到标准输出。

  

创建简单的函数而不是创建对象不是更容易吗?

这不是一件容易的事。它更多地是面向对象设计原则的问题 具有类和成员函数的目的是将数据和对该数据进行操作的方法绑定在一个单元中。你可能想拿一本好书并阅读 Encapsulation&amp;抽象即可。

<强> The Definitive C++ Book Guide and List

答案 2 :(得分:0)

  1. 在您的情况下,“displayMeassage”函数不会返回字符串,只是打印您的消息。

  2. 返回意味着,假设一个例子:

    A级

    {

      int num=0;
    
      int getNum()
    
      {
    
         return num;
    
      }
    

    };

    void main()

    {

       A a;
    
       int no=a.getNum();
    
       cout<<"no : "<<no;
    

    }

    在上面的例子中,然后getNum返回返回的数字  调用。

  3. 无论你采取什么样的例子都不好理解回归概念。

  4. 由于