将类a结构体传递给外部函数
Passing a classA struct into an outside function
我有一个叫做class的类,里面有一个叫做aStuct的结构体。我想把它传递给一个外部函数。
注意:外部函数将在另一个。cpp文件中定义。#include <iostream>
typedef struct {} aStruct;
class aclass
{
public:
struct aStruct{
int anInt;
}structA;
};
void aFunction (aStruct *stuctA);
int main(int argc, const char * argv[])
{
aclass AClass;
AClass.structA.anInt = 2;
aFunction(&AClass.structA);
std::cout << AClass.structA.anInt;
return 0;
}
void aFunction (aStruct *stuctA)
{
stuctA->anInt = 3;
}
代码的问题是您有两个具有相同名称的结构
typedef struct {} aStruct;
class aclass
{
public:
struct aStruct{
int anInt;
}structA;
};
第一个是全局结构
typedef struct {} aStruct;
,第二个是类定义中包含的结构
class aclass
{
public:
struct aStruct{
int anInt;
}structA;
};
函数参数
void aFunction (aStruct *stuctA)
{
stuctA->anInt = 3;
}
具有全局结构的类型。这个函数声明相当于
void aFunction ( ::aStruct *stuctA)
{
stuctA->anInt = 3;
}
必须在类
中定义结构的类型void aFunction (aclass::aStruct *stuctA)
{
stuctA->anInt = 3;
}
相关文章:
- 调用外部函数,无法指定类型 C++/MVS
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- add_cuda_library输出:未解析的外部函数
- 外部函数在 main() 上调用时返回分段错误 11.(C++)
- 如何在Windows Media Foundation中获取相机外部函数?
- 内联asm编译器屏障(内存阻塞器)是算作外部函数,还是算作静态函数调用
- antlr cpp target 的标头部分不允许使用具有默认参数的外部函数
- 将多维数组传递给外部"C"函数为 void *
- llvm 调用一个以 char * 作为参数的外部函数
- 将 std::vector<bool> 传递给外部函数
- 如何在类向量中存储/使用外部函数指针
- LLVM - 如何使嵌套函数看到外部函数的变量
- CUDA9.2及以上版本中模板默认参数存在无法解决的外部函数错误
- 宏导入外部函数
- 如何在LLVM Pass中将字符串传递给外部函数
- C++:是否可以区分外部"C"函数和普通函数?
- 从外部函数访问外部结构属性
- 如何将成员声明为指向外部"C"函数的指针?
- C 将外部函数链接为成员函数
- LLVM JIT编译的程序找不到外部函数