LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 247|回复: 0

隐藏类名

[复制链接]
发表于 2024-1-26 23:37:37 | 显示全部楼层 |阅读模式
通过声明同一范围内的函数、对象或变量或枚举器,可以隐藏类名称。 但是,在关键字 class 作为前缀时仍可以访问类名称。

C++

// hiding_class_names.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

// Declare class Account at global scope.
class Account
{
public:
    Account( double InitialBalance )
        { balance = InitialBalance; }
    double GetBalance()
        { return balance; }
private:
    double balance;
};

double Account = 15.37;            // Hides class name Account

int main()
{
    class Account Checking( Account ); // Qualifies Account as
                                       //  class name

    cout << "Opening account with a balance of: "
         << Checking.GetBalance() << "\n";
}
//Output: Opening account with a balance of: 15.37

在任何位置调用类名称 (Account),关键字类都必须用于将其与全局范围内的变量 Account 区分开来。 当类名出现在范围解析运算符 (: 的左侧时,此规则不适用。 在范围解析运算符的左侧的名称始终被视为类名称。

下面的示例演示如何使用 class 关键字声明指向类型 Account 的对象的指针:

C++

class Account *Checking = new class Account( Account );
前面的语句中的初始值设定项(括号内)的 Account 具有全局范围;它的类型为 double。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表