Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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++ 有没有办法访问C+;的私有成员变量+;复数类?_C++ - Fatal编程技术网

C++ 有没有办法访问C+;的私有成员变量+;复数类?

C++ 有没有办法访问C+;的私有成员变量+;复数类?,c++,C++,我使用标准C++库头中的内置复数类 STD::复合< /代码>。我在HLS工具中应用了一个代码。该工具无法访问该复杂类的私有成员变量。有没有可能把它公之于众,或者我能做些什么 Error: /usrf01/prog/mentor/2015-16/RHELx86/QUESTA-SV-AFV_10.4c-5/questasim/gcc-4.7.4-linux_x86_64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../includ

我使用标准C++库头中的内置复数类<代码> STD::复合< /代码>。我在HLS工具中应用了一个代码。该工具无法访问该复杂类的私有成员变量。有没有可能把它公之于众,或者我能做些什么

Error: /usrf01/prog/mentor/2015-16/RHELx86/QUESTA-SV-AFV_10.4c-5/questasim/gcc-4.7.4-linux_x86_64/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../include/c++/4.7.4/complex(222): 
error: 'fpml::fixed_point<int, 16u, 15u> std::complex<fpml::fixed_point<int, 16u, 15u> >::_M_real' is private
错误:/usrf01/prog/mentor/2015-16/RHELx86/QUESTA-SV-AFV_10.4c-5/questasim/gcc-4.7.4-linux_x86_64/bin/。/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../../../include/c++/4.7.4/complex(222):
错误:“fpml::fixed_point std::complex::_M_real”是私有的

std::complex
模板有点神奇:您有明确的权限将复数重新解释为两个标量的数组。更一般地说,以下是有效的:

std::complex<float> a[10];

float* r = reinterpret_cast<float*>(a);

for (int i = 0; i != 20; ++i) std::cout << r[i] << '\n';
std::复合物a[10];
浮动*r=重新解释铸件(a);

对于(inti=0;i!=20;++i)std::cout来说,访问成员的另一种方法是使用相应的getter,例如

#include <complex>

int main()
{
   std::complex<float> c;
   c.real(1);
   c.imag(2);
   return c.real();
}
#包括
int main()
{
std::复合物c;
c、 房地产(1);
c、 imag(2);
返回c.real();
}

当然,您不能从类外访问私有成员,这就是私有成员的意义所在。还有,“HLS工具”是什么?你到底想干什么?请和。然后学习如何创建一个。
#定义私有公共
,千万不要这样做。我不知道!哪里说我们有明确的权限将复数重新解释为两个标量的数组