我有以下代碼:如何使用指針和引用C++和VALGRIND?
[test.h]
class MyClass
{
public:
string Name;
MyClass();
void method(MyClass &obj);
}
[test.cpp]
void MyClass::method(MyClass &obj)
{
cout<<obj.Name<<endl;
}
[main.cpp]
#include "test.h"
void main()
{
MyClass *class = new MyClass();
class->Name="Foo";
class->method(*class);
delete class;
}
我想問一下,如果這是爲具有包含對象的引用發送方法的正確方法。 我是否正確釋放分配的內存? 我這樣問,因爲對於一個類似的例子,當測試valgrind我有這樣的:有條件的跳轉或移動依賴單位化值。
我在Ubuntu下使用C++。我的編譯器是g ++。 APECECIATE !! 編輯!
爲什麼我不能把INT值VALUE = 0;在test.h文件中?
似乎對我很好,但你應該在其c'tor中初始化班級的成員。 另外,如果你用-g標誌編譯,valgrind會告訴你它認爲有錯誤的行號:) –
@Eran:沒有必要明確地初始化'Name'。 'std :: string'的默認構造函數隱式調用。但是這裏沒有'MyClass'構造函數定義。 – Stephan