Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在不定义其他函数getValue()的情况下获取私有值?_C++ - Fatal编程技术网

C++ 如何在不定义其他函数getValue()的情况下获取私有值?

C++ 如何在不定义其他函数getValue()的情况下获取私有值?,c++,C++,我的函数:AnalyzerMain有问题 它适用于只有AnalyzerMain的2个值,但当我想要表1的值时,我只有m_flop1开始,我有一个错误,因为m_flop1是私有的!那么,我是否被迫在类表中声明一个函数:getValeur?我已经在类Carte中创建了它,表包含Carte 多谢各位 在Mains.cpp中: void Mains::analyserMain(Table table1) const { // LES 2 CARTES EN MAINS (COMME FCT PRECED

我的函数:AnalyzerMain有问题 它适用于只有AnalyzerMain的2个值,但当我想要表1的值时,我只有m_flop1开始,我有一个错误,因为m_flop1是私有的!那么,我是否被迫在类表中声明一个函数:getValeur?我已经在类Carte中创建了它,表包含Carte

多谢各位

在Mains.cpp中:

void Mains::analyserMain(Table table1) const
{
// LES 2 CARTES EN MAINS (COMME FCT PRECEDENTE)
val1 = m_carte1.getValeur();
coul1 = m_carte1.getCouleur();
val2 = m_carte2.getValeur();
coul2 = m_carte2.getCouleur();  

//+ LES 3 CARTES SUR LA TABLE
val3 = table1.m_flop1.getValeur();
}

您不能从另一个类访问私有成员,除非它是该类的朋友。您可以选择声明getter函数,或者根据特定情况将成员的可访问性更改为public或protected

在这里,您可以找到有关C++中可访问性的详细信息:


简单的getter和setter通常是一个糟糕的设计思想,这与首先公开变量没有什么区别。尝试围绕行为对类进行建模,而不是围绕一组值进行简单的包装。这些类应该做什么?你不能把Table和m_flop1改成POD类型吗?