21xrx.com
2024-12-27 15:54:32 Friday
登录
文章检索 我的文章 写文章
如何在C++中定义类时不使用public关键字?
2023-07-06 12:08:23 深夜i     --     --
C++ 定义 不使用public

在C++中,类的成员可以被分为私有(private)、保护(protected)和公有(public)三种类型。通常情况下,我们都会使用public关键字来定义类的公有成员,以便其他对象能够访问它们。但是,在某些情况下,有时我们可能希望在类定义中不使用public关键字。那么,如何定义这样的类呢?

第一种方法是使用默认访问控制符。在C++中,当我们使用class关键字来定义类时,类的默认访问控制符是private。这意味着,在不指定任何访问修饰符的情况下,类的所有成员都将被视为私有成员。例如:


class MyClass {

 int x; // 私有成员

 void func(); // 私有成员

};

在上面的示例中,成员变量x和函数func都是私有成员,因为我们没有指定任何访问修饰符。

第二种方法是使用struct关键字代替class关键字。在C++中,struct和class的区别只在于默认访问控制符不同。当我们使用struct关键字来定义类时,类的默认访问控制符是public。因此,在不指定任何访问修饰符的情况下,类的所有成员都将被视为公有成员。例如:


struct MyClass {

 int x; // 公有成员

 void func(); // 公有成员

};

在上面的示例中,成员变量x和函数func都是公有成员,因为我们没有指定任何访问修饰符,并且使用了struct关键字。

需要注意的是,使用默认访问控制符或者struct关键字来定义类时,我们仍然可以手动指定访问修饰符,以改变类成员的访问权限。例如:


class MyClass {

private:

 int x; // 私有成员

public:

 void func(); // 公有成员

};

struct MyStruct {

public:

 int x; // 公有成员

private:

 void func(); // 私有成员

};

在上面的示例中,我们手动指定了成员变量x和函数func的访问修饰符,分别改变了它们的访问权限。因此,在定义类时不使用public关键字并不意味着所有成员都是公有成员,而是指定了默认的访问控制符。我们仍可以手动指定访问修饰符以确保安全的代码实现。

  
  
下一篇: C++ AB互换

评论区

{{item['qq_nickname']}}
()
回复
回复