将宏用于无参数的功能
Using macros for function without parameters
我有一个结构,即tstream。它有2个受保护的成员,可以使用Getters访问。
struct TStream {
protected:
long long size, position;
FILE *f;
public:
...
long long Get_Size(void) {
return size;
}
long long Get_Pos(void) {
return position;
}
} TStream;
我可以用宏代替get_size()和get_pos()的使用?
#define Size Get_Size()
#define Position Get_Pos()
您可能想要的是一个具有private
数据成员和protected
Setter功能的类,public
Geters:
class TStream {
long long size, position;
FILE *f;
protected:
void Set_Size(long long value) {
size = value;
}
void Set_Pos(long long value) {
position = value;
}
public:
// ...
long long Get_Size(void) const {
return size;
}
long long Get_Pos(void) const {
return position;
}
};
这样的只有类/结构直接从TStream
继承可以更改private
成员,但是该值仍然可以从public
范围访问。
宏都不会改变这些C 范围的方面。
相关文章:
- 如何在C++中调用默认模板功能参数?
- 为什么指定数据类型而不是构造功能参数?C
- 为什么在相同大小的功能参数中隐式转换不会发出警告
- 无全局变量或功能参数的递归调用
- 将功能参数添加到向量
- 使用ENABLE_IF和SFINAE时,功能参数类型扣除(std容器,例如向量)失败
- C 功能参数中的返回参数
- 将std ::字符串移至功能参数
- 可以在功能参数列表中多次使用函数模板的模板参数名称
- C 元组类型用于功能参数类型
- 功能参数包
- 我可以使用模板功能参数C 更改模板类型
- 为了支持移动语义,应通过unique_ptr,值或rvalue获取功能参数
- 创建模板函数以使用该功能参数调用其他函数
- C 功能参数扩展了多个类
- GDB CoreFile不查看功能参数
- 功能参数导致堆栈溢出
- C 在功能参数中指向基类指针的指针
- 功能参数转换为儿童类C
- 功能参数与函数调用不匹配