sách gpt4 ai đã đi

c++ - #define DCL_PROP(prop) 这样的宏是如何工作的?

In lại 作者:行者123 更新时间:2023-11-28 02:33:37 25 4
mua khóa gpt4 Nike

最近,我在工作中得到了一些全新的代码,我对这些代码的运行方式感到困惑。翻找了一番,查不到什么资料,特来求助。

Mã như sau:

#define DCL_PROP(prop) \  
private: \
std::string prop; \
public: \
User& set_##prop(const std::string& prop) \
{ \
this->prop = prop; \
return *this; \
} \
const std::string& get_##prop() \
{ \
return prop; \
}

这是什么意思?

1 Câu trả lời

hiện hữu #define 之后,只要 DCL_PROP(prop) 出现在类中,宏中列出的测试就会被注入(inject)到C++ 代码,使用公共(public) set_prop 和 get_prop 函数添加名为“prop”的私有(private)数据成员。例如:

class X
{
DCL_PROP(name);
};

会生成这样的代码:

class X
{
riêng tư:
std::string prop;
công cộng:
User& set_name(const std::string& prop)
{
this->prop = prop;
return *this;
}
const std::string& get_name()
{
return prop;
}
};

...除了它在生成的代码中都在一行上,这与功能无关。

您通常可以使用编译开关观察这些类型的替换,例如:g++ -E somefile.cc hoặc cl.exe/E somefile.cpp.

关于c++ - #define DCL_PROP(prop) 这样的宏是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28272541/

25 4 0
Bài viết được đề xuất: python - 抓取包含::之前的网页
Bài viết được đề xuất: c++ - 保存一组整数的最佳方法
Bài viết được đề xuất: html - 使用 HTML 和 CSS 创建的网页上的额外空间
Bài viết được đề xuất: Tệp tiêu đề C++ (cơ bản)
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com