C++ 如何在c++;
所以考虑到那一点伪装代码 我希望类B和C能够从类A中的数组中读取信息,而不需要更改数据 访问器函数将非常麻烦,因为我必须为每种不同的输出格式编写一个函数,或者创建一个临时结构来保存数据并将其传递给调用类,这样它就可以。这似乎不是最好的解决方案 friend函数可以访问类的成员,但不是我需要访问的实例(除非我误解了friend函数…)C++ 如何在c++;,c++,arrays,class,C++,Arrays,Class,所以考虑到那一点伪装代码 我希望类B和C能够从类A中的数组中读取信息,而不需要更改数据 访问器函数将非常麻烦,因为我必须为每种不同的输出格式编写一个函数,或者创建一个临时结构来保存数据并将其传递给调用类,这样它就可以。这似乎不是最好的解决方案 friend函数可以访问类的成员,但不是我需要访问的实例(除非我误解了friend函数…) 将数组公开将允许除我希望访问的两个类之外的其他类访问/操作数据。如果您想让客户端能够检查数组的内容,可以使用a中的单个成员函数来执行此操作 Struct S {in
将数组公开将允许除我希望访问的两个类之外的其他类访问/操作数据。如果您想让客户端能够检查数组的内容,可以使用
a
中的单个成员函数来执行此操作
Struct S
{int a,b,c};
class A{
S myArray[MAX]
void fillArrayFromFile();
};
class B{
void printStyle1();
void printStyle2();
void printSTyle3();
};
class C{
void printStyle4();
void printStyle5();
void printSTyle6();
};
这与允许客户端直接只读访问具有相同的效果。如果您想让客户端能够检查数组的内容,可以使用
a
中的单个成员函数来完成
Struct S
{int a,b,c};
class A{
S myArray[MAX]
void fillArrayFromFile();
};
class B{
void printStyle1();
void printStyle2();
void printSTyle3();
};
class C{
void printStyle4();
void printStyle5();
void printSTyle6();
};
这与允许它们直接只读访问具有相同的效果。将访问函数添加到返回常量指针或对数组的引用,或返回到S中的指定元素
class A
{
S myArray[MAX]
void fillArrayFromFile();
public:
const S* getArrayPointer() const { return &myArray; }
};
将访问函数添加到,该函数将返回对数组或S中指定元素的常量指针或引用
class A
{
S myArray[MAX]
void fillArrayFromFile();
public:
const S* getArrayPointer() const { return &myArray; }
};
好友类可以访问您的数据成员和方法。好友类可以访问您的数据成员和方法。但仍然容易受到
常量的攻击。(但我不认为没有复制就可以阻止这一切)@phoeagonconst_cast
在这里无关紧要。你不能阻止别人使用它。@captain很明显格式对我来说没有意义。。。我看到一个S指针的返回,但是const在{}之外做了什么呢?函数声明外面的const
使得它在被调用时不能修改任何成员变量。这是常量正确性的一部分。如果类型是指针或引用,它还要求函数通过const
返回。我认为第一个const就是这样做的,在s*之前的一个,或者只是说s*不能更改?仍然容易受到const
强制转换的影响。(但我不认为没有复制就可以阻止这一切)@phoeagonconst_cast
在这里无关紧要。你不能阻止别人使用它。@captain很明显格式对我来说没有意义。。。我看到一个S指针的返回,但是const在{}之外做了什么呢?函数声明外面的const
使得它在被调用时不能修改任何成员变量。这是常量正确性的一部分。如果类型是指针或引用,它还要求函数通过const
返回。我认为第一个const就是这样做的,在s*之前的一个,还是说s*不能更改?