c – 在类标题之外移动odb编译指示
发布时间:2020-12-16 06:50:37 所属栏目:百科 来源:网络整理
导读:是否可以在类头之外移动odb(类似框架)pragma? 例如,我只定义了带有id的class basic_object(abstract): class basic_object { int _id;public: int get_id() const; void set_id(int _id);}; 然后在另一个文件中为该类创建编译指示 #pragma db object(basic
是否可以在类头之外移动odb(类似框架)pragma?
例如,我只定义了带有id的class basic_object(abstract): class basic_object { int _id; public: int get_id() const; void set_id(int _id); }; 然后在另一个文件中为该类创建编译指示 #pragma db object(basic_object) abstract #pragma db member(basic_object::_id) get(get_id) set(set_id) id auto 解决方法
是的,你可以,它被称为命名的pragma.
在你的另一个文件中,你必须写 #pragma db object(basic_object) #pragma db member(basic_object::_id) id 然后你必须告诉odb编译器在哪里寻找.您可以通过添加来执行此操作 #ifdef ODB_COMPILER #include "other_file.hxx" #endif 到原始文件或
作为odb编译器的参数. 但是您给出的示例类basic_object中存在一个问题:您的数据字段_id是私有的.你可以解决这个问题 宣布公开 要么 通过将odb访问类添加为您班级中的朋友: private: friend class odb::access; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |