可以将c++类的所有成员(包括数据和函数)定义为private吗?
Can we define all members(including data as well as functions) of a c++ class as private?
我试图理解c++类,然后我意识到我需要至少一个公共函数来设置任何对象中数据成员的值。
是否有任何方法,通过它我可以定义定义所有成员(包括数据以及函数)的c++类为私有?
当您定义类成员并且不使用任何修饰符时,所有成员(包括构造函数)将被认为是私有的。下面是一个代码片段:
class AllMembersPrivate
{
AllMembersPrivate(); //constructor
int privateMemberOne;
int privateMemberTwo;
int PrivateMethodOne();
}
现在请注意,您将无法创建该类的实例,因为构造函数本身已被声明为private。
那么,你可能想要的是:
class AllMembersPrivate
{
int privateMemberOne;
int privateMemberTwo;
int PrivateMethodOne();
public:
AllMembersPrivate(); //constructor
}
可以使用好友(函数或其他类)
class TheClass
{
int property;
TheClass() :property(0) {};
TheClass(TheClass const&) = default;
TheClass& operator=(TheClass const&) = default;
~TheClass() = default;
friend TheClass* make();
friend void modify(TheClass*, int);
friend int retrieve(TheClass const*);
friend void unmake(TheClass*);
};
TheClass* make() { return new TheClass; }
void modify(TheClass* obj, int n) { obj->property = n; }
int retrieve(TheClass const* obj) { return obj->property; }
void unmake(TheClass* obj) { delete obj; }
相关文章:
- 链表,反向函数,数据结构
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 如何在c++中定义以struct为数据成员的类中的构造函数
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 从函数返回任意简单类型的数据
- 友元函数无法访问私有数据成员 (c++)
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- 为什么我们使用在C++中返回数据结构的函数?
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 重写函数不打印基类数据
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 接受函数在发送数据包时等待
- 使用 pybind11 调用 Python 函数时避免复制输入数据
- C++中是否有用于长数据类型的 lower_bound() 函数?
- 在线程函数中处理数据向量时进行线程竞速
- 使用函数数据类型键入别名和别名模板
- 从循环返回char函数数据
- c++从非成员调用类函数/数据
- C++类构造函数数据传递