用c++定义类指针

define class pointer in c++

本文关键字:指针 定义 c++      更新时间:2023-10-16
#include <iostream>
#include <string>
#include <list>
#include <conio.h>
using namespace std;
class people
{
public:
   people* p;
   int x;
   people();
};
people::people()
{
   p = NULL;
}
void main()
{
    people jax;
    jax.p->x = 1;
}

i got this error

classarray.exe中0x00361419的未处理异常:0xC0000005:访问冲突写入位置0x00000004.

在这一行jax.p->x = 1;

请帮帮我!

你需要为人们预留内存:

void main()
{
    people jax;
    jax.p=new people;
    jax.p->x = 1;
    ...
    delete jax.p;
}

编辑:最后,您需要释放内存,否则将发生内存泄漏。

另一种方法是实现内部指针初始化的特殊函数:

void people::init_p()
{
   if(!p) p = new people();
}