C++ 为';gdt#U齐平';

C++ 为';gdt#U齐平';,c++,assembly,osdev,C++,Assembly,Osdev,我正在编写一个需要与一些外部汇编函数接口的操作系统。我将声明放在标题中: namespace Kernel { class DescriptorTables { public: void init(); void gdt_set_gate(s32int,u32int,u32int,u8int,u8int); private: extern void gdt_flush(u32int);

我正在编写一个需要与一些外部汇编函数接口的操作系统。我将声明放在标题中:

namespace Kernel
{
    class DescriptorTables
    {
        public:
        void init();
        void gdt_set_gate(s32int,u32int,u32int,u8int,u8int);
        private:
        extern void gdt_flush(u32int);
        struct gdt_entry_struct
        {
        //...
当代码运行时,它会生成

DescriptorTables.h:10:31:错误:为“gdt_flush”指定了存储类

我以前从未见过这个错误,有没有关于如何修复这个错误的想法

    extern void gdt_flush(u32int);

在类中不能这样说
extern
extern
是一个存储类,它解释了您看到的消息。

我不完全确定您希望
gdt_flush()
实现什么,但我最好的猜测是您希望能够重新实现其功能;为此,您需要
virtual