正在读取类变量
Reading class variable
我创建了一个名为"Triangle"的类,现在正试图从主节中读取某个类变量("SideA")。我特别声明SideA为"公共",以防止访问问题。然而,当试图编译时,程序会抛出错误"class Triangle没有名为SideA的成员"。
我正在为您粘贴最重要的部分:
class Triangle
{
public:
float SideA;
};
int main ()
{
Triangle Object(); //pair is normally filled with several vars for the constructor)
//I declared "Object" correctly, it can be constructed. "SideA" is filled by the
//constructor. I'm just leaving it out
//right now to keep this text short
//This line is marked when the IDE aborts the compiling process
cout << Object.SideA;
我希望你能帮助我,因为我真的不知道如何解决这个问题。我正在学习的书建议使用特殊的函数来实现这些目的("void readOut{return X}"),但我真的每次想读出一个数字都必须写一个函数吗?
提前感谢您,JustTestAcc
尝试更新
Triangle Object(); // This declares a function which returns Triangle type
至
Triangle Object; // this defines Object
也阅读最令人烦恼的解析
如果您是C++11,您可以用列表初始化初始化Object
Triangle Object{}; // value-initialization (to zero)
Triangle Object{2.0}; // direct-list-initialization
将其设为Triangle Object
;
请尝试下面的..;)
#include<iostream>
using namespace std;
class Triangle
{
public:
float SideA;
};
int main ()
{
Triangle Object; //this defines object
//I declared "Object" correctly, it can be constructed. "SideA" is filled by the
//constructor. I'm just leaving it out
//right now to keep this text short
//This line is marked when the IDE aborts the compiling process
cout << Object.SideA;
}
这是因为在编写以下内容时没有创建Triangle的实例:
Triangle Object();
这在本地(在main()的作用域中)声明了一个函数Object
,该函数的参数列表为空,返回类型为Triangle
。它不实例化Triangle
类型的对象,因此不调用实例的默认构造函数。然而,后者显然是你想要的。
你可以通过简单地写:来修复它
Triangle Object;
cout << Object.SideA;
此外,我建议您不要以大写字母开头变量名。在许多编码约定中,正如您对Triangle
所做的那样,类型以大写字母开头。Triangle
的实际实例稍后可能会与类型的名称混淆,而不会被识别为类型实例的名称。从上下文来看,名称在其中的使用将变得显而易见,但必须扫描某个东西的上下文才能找出它实际代表的是什么是乏味和不必要的:
Triangle object;
cout << object.SideA;
Triangle Object(); // Declare a function Object return a Triangle
这可以是两件事:
- 三角形类对象的变量定义
- 函数Object的函数声明,该函数返回Triangle类型的对象
C++标准要求这个对齐必须被解释为第二个点。
它被称为最令人烦恼的解析。
您可以通过以下方式更改:
Triangle Object;
或者在C++11:中
Tirangle Object{}; // Useful when parameters are needed
你可以做,三角形*对象=新三角形();或者,三角形对象;
- 查找后更改类变量
- 如何避免在仅标头库中C++类/变量重定义
- c++ 在非类函数中使用类变量
- 基于模板的类变量
- 分段 访问私有类变量时出错
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- C++编译器是否优化了顺序静态变量读取?
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 模板类变量作为非模板类的成员
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- 如何在构造函数中访问类变量以分配它们,而无需在C++中使用此指针
- 类变量无法从类方法访问
- 指针作为类变量 Qt
- 为什么线程对类变量所做的更改没有影响?
- memcpy() 在一个类中被调用以复制到另一个类变量中后会引发异常
- C++:使用基类中的仅派生类变量
- 将指针作为参数分配给类变量,然后使用它抛出读取访问违规
- 类方法读取同一变量C++的不同值
- 正在读取类变量
- 为什么在读取私有类变量时会得到EXC_BAD_ACCESS