0

C++のDevC++でコンパイルするコードのブロックがありますが、VSC ++では_Block_type_is_valid(phead-> ...)エラーが発生し、再試行して中断すると、に移動しxmemoryて機能しますvoid deallocate(pointer _ptr, size_t type)。私の問題は何ですか?そしてそれを解決する方法は?

編集:

BaseクラスとBase1クラスから継承したクラスBaseがあります。

class Base{
    public:
            virtual string getString() = 0;    
};

class Base1:: public Base2{
    private:
        char * message;
    public:
        Base1(string _message);
        ~Base1(); 
        string getString();
};
//Base1.cpp

Base1::Base1(string _message){/*Do coppy from _message to message*/}
Base1::~Base1(){delete[] message;}

関数getString()はを返しますmessage、そしてmain.cpp私が呼び出されてBase *b = new Base1("something")から呼び出されb->getString()、それがすべてです。しかし、コンパイルすると、上記のような問題が発生しました。Baseこれはクラスのデストラクタが恋しいですか?またはこのようなもの?

4

1 に答える 1

0

Base1 コンストラクターは表示されません。問題は Base1 コンストラクターにあると思います。次のように Base1 コンストラクターを実装できます。

Base1::Base1(string _message){ message = strdup(_message.c_str()); }
于 2012-06-15T08:21:25.477 に答える