0

我目前正在阅读一本 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();
}
4

3 回答 3

5
  1. 这是本例中的唯一用途。您还可以拥有指向 void ( void *) 的指针。
  2. 您没有返回该消息。你正在打印它。在 C++ 中,方法和函数可能有副作用。一种可能的副作用是输出。
  3. 是的,在这种情况下。然而,这并不是一个对象的好处的现实例子。为此,请参阅如何向初学者描述面向对象编程?有一个很好的现实世界类比吗?很多地方之间。
于 2012-04-10T05:00:30.037 回答
1

void在这个例子中只用于声明一个返回类型?

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

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

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

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

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

The Definitive C++ Book Guide and List

于 2012-04-10T05:02:42.550 回答
0
  1. 在您的情况下,函数“displayMeassage”没有返回字符串,它只是打印您的消息。

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

    A级

    {

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

    };

    无效的主要()

    {

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

    }

    在上面的例子中,getNum 方法返回的是返回被
    调用的数字。

  3. 无论您以什么为例,都不好理解回报的概念。

谢谢

于 2012-04-10T05:06:03.467 回答