从矢量数组中调用功能
call a function from an array of vectors
在以下代码中,我在第33行上遇到了一个错误。为什么?什么是正确的语法?当然,我犯了一些愚蠢的错误...不幸的是,我正在尝试更好地了解矢量。
#include <iostream>
#include <vector>
class firstClass
{
public:
firstClass(int x, int y):sum(x+y)
{
}
void getSum()
{
std::cout << sum << std::endl;
}
private:
int sum;
};
class secondClass
{
public:
secondClass(int dim)
{
obj = new std::vector<firstClass>(dim,firstClass{3,5});
}
private:
std::vector<firstClass>*obj;
};
int main()
{
secondClass*obj2;
obj2 = new secondClass(4);
obj2->(*obj)[0].getSum(); //HERE!
return 0;
}
错误:
error: expected unqualified-id before '(' token
error: 'obj' was not declared in this scope
-
访问数据成员的正确语法应为:
(*(obj2->obj))[0].getSum();
-
请注意,
secondClass::obj
是private
数据成员,因此您无法在main()
中访问。 -
对于您显示的代码示例,您根本不需要使用RAW指针和
new
。
相关文章:
- "No-Const Pointer to Const "调用功能
- 在地图中存储的类中调用功能
- 如何部分专业化功能以用元组元素作为参数调用功能
- 调用功能并将其设置为等于结构
- 在迭代器上调用功能
- 来自Pascal DLL/SO中的C 加载和调用功能
- 在C 中的另一个类中调用功能
- 如何从另一类调用功能
- C 迭代用于循环并在其中调用功能
- 从矢量数组中调用功能
- C 在运行的JVM中调用功能
- 使用条件模板C 调用功能
- 以特定顺序调用功能
- 在没有资格的命名空间中调用功能
- 如果在同一翻译单元中调用功能,为什么需要搬迁
- Portaudio:通过调用功能播放多个生成的声音
- 如何从其他类调用功能指针
- 如何使用从Swift代码中调用的线程在C 上制作异步调用功能
- 从Python(Anaconda)调用C 功能
- 在ShellCode中调用功能