我正在阅读由Jones&Bartlett出版的Ulla Kirch-Prinz和Peter Prinz撰写的《 C++编程完整指南》。在其中,有一个类的示例(第246页),我认为这是一个主要问题-不是因为它是一个错误,而是我听说过您永远都不会做的事情:

// account.h
// Defining the class Account.
// ---------------------------------------------------
#ifndef _ACCOUNT_       // Avoid multiple inclusions.
#define _ACCOUNT_

#include <iostream>
#include <string>
using namespace std;

class Account
{
    private:                // Sheltered members:
        string name;        // Account holder
        unsigned long nr;   // Account number
        double balance;     // Account balance

    public:                 //Public interface:
        bool init( const string&, unsigned long, double);
        void display();
};

#endif   //  _ACCOUNT_
包含卫队的宏以下划线开头和结尾。据我了解,下划线保留给标准库,操作系统和编译器使用,除非您正在创建操作系统或编译器,否则几乎没有理由使用它。
我知道这只是一个例子,但出于教人们良好的编程习惯的目的和目的,看来他们仍然很讨厌这个习惯。话虽如此,我对此还是很陌生,所以我可能是错的并且很适当。

最佳答案

是的,这些是保留名称,尽管您不太可能真正遇到问题。
请注意,在这种情况下,仅保留它是因为它后跟一个大写字母。 +帐户就可以了。
是的,我同意书真的不应该采用这种风格。基本上,这源于人们已经习惯了样式,他们通过查看实现库 header (允许使用保留名称)并思考“这样就可以做到”,而没有意识到那些名称是由于保留而专门使用的。

关于c++ - 书中的这个例子不好吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62865168/

10-09 05:07