指向自己对象指针的成员C++

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:49:57
class Test
{
protected:
static Test* pTest; //这种用法,请教。怎么用。
...
};

#include <iostream>
#include <string>
class Test
{
public:
static Test *pTest;
int intNum;
string strName ;

Test(int num, string name):intNum(num),strName(name){}
void display(){cout<<intNum<<" "<<strName<<" "<<(*pTest).intNum<<" "<<(*pTest).strName;}
};
Test tvar(1001,"litao");
Test *Test::pTest=&tvar;

int main()
{
Test b1(1002,"ligho");
b1.display();

return 0;
}

这是我所思考的

可否把问题说清楚点,你想怎么用?一般情况用法是这样:
class Test
{
protected:
static Test* pTest; //这种用法,请教。怎么用。
...
};
Test* Test::pTest = 0;//这里是初始化,当然你也可以new一个Test赋值给它,这得看具体情况
……
Test::pTest->...//这里是使用它,就像你用一个Test指针一样,只不过它是静态的,即不管你在哪里使用它,都是使用同一个指针,这个具体你得先弄明白static的用法

class Test
{
protected:
static Test* pTest; //这种