我一直在寻找这个问题的解决方案,我认为这是由于嵌套命名空间造成的。
波纹管我们有它的相关部分:
implementation.hpp那是一个接口的实现
#ifndef IMPLEMENTATION_H
#define IMPLEMENTATION_H
#include "class_b.hpp"
namespace XPTO {
class Implementation : public XPTO::Interface {
public:
Implementation();
~Implementation() override;
ReturnStatus
initialize() override;
private:
CLASS_B::Class_B b; // namespace CLASS_B, class Class_B
};
}
#endif
Run Code Online (Sandbox Code Playgroud)
实现.cpp
#include "implementation.hpp"
XPTO::Implementation::Implementation() {}
XPTO::ReturnStatus
XPTO::Implementation::initialize() {
b = new CLASS_B::Class_B::Class_B();
//namespace ClASS_B, class Class_B and constructor Class_B()
}
Run Code Online (Sandbox Code Playgroud)
class_b.hpp
#ifndef CLASS_B_H
#define CLASS_B_H
namespace CLASS_B{
class Class_B {
public:
Class_B();
~Class_B();
void initialize();
};
}
#endif
Run Code Online (Sandbox Code Playgroud)
错误是 error: expected type-specifier b …
我正在尝试将表从纯 SQL 转换为 Flask-Sqlalchemy,但是可用的文档并不清楚如何执行此特定场景 - 主键也是外键。
构建表的 SQL 如下所示,它工作正常:
CREATE TABLE IF NOT EXISTS `ws`.`Perfil_Plano_Transacao` (
`pptr_perf_id` INT NOT NULL,
`pptr_tran_id` INT NOT NULL,
`pptr_plan_id` INT NOT NULL,
`pptr_dt_incluscao` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`pptr_dt_atualizacao` TIMESTAMP NULL,
PRIMARY KEY (`pptr_perf_id`, `pptr_tran_id`, `pptr_plan_id`),
INDEX `fk_Perfil_Plano_Transacao_Transacao1_idx` (`pptr_tran_id` ASC),
INDEX `fk_Perfil_Plano_Transacao_Plano1_idx` (`pptr_plan_id` ASC),
CONSTRAINT `fk_Perfil_Plano_Transacao_Perfil1`
FOREIGN KEY (`pptr_perf_id`)
REFERENCES `ws`.`Perfil` (`perf_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Perfil_Plano_Transacao_Transacao1`
FOREIGN KEY (`pptr_tran_id`)
REFERENCES `ws`.`Transacao` (`tran_id`)
ON DELETE NO ACTION
ON UPDATE …Run Code Online (Sandbox Code Playgroud) python sqlalchemy foreign-keys composite-primary-key flask-sqlalchemy