我写的程序哪里出了问题,编译不通过

编写一个类Class15_1,声明一个数据成员int value和一个静态数据成员int staticV(初始化为0),让构造函数初始化数据成员value,并让静态数据成员staticV加1,让析构函数把静态数据成员staticV减1。主程序中使用new操作符创建三个堆对象,value值分别为5,80,20。然后显示它们的数据成员和静态数据成员,再依次使用delete操作符析构每个对象,并显示对静态数据成员的影响。
输入无输出5
80
20
3
2
1
0


#include<bits/stdc++.h>
using namespace std;
class Class15_1{
    int value;
    int static staticV;
    public:
        
        Class15_1(int a){
            value=a;
            staticV+=1;
            
        }
        void show(){
            cout<<value<<endl;
            cout<<staticV<<endl;
        }
        ~Class15_1(){
            staticV-=1;
            
        }
}; 

int main(){
    Class15_1* p=new Class15_1[3];
    
    p[0]->Class15_1(5);
    p[1]->Class15_1(80);
    p[2]->Class15_1(20);
    p[0]->show();
    p[1]->show();
    p[2]->show();
    delete p;
    
}

修改如下,供参考:

#include <iostream>
//#include<bits/stdc++.h>
using namespace std;
class Class15_1{
    int value;
    int static staticV; //声明但未定义,还未分配内存
    public:

        Class15_1(int a){
            value=a;
            staticV+=1;
        }
        void show(){
            cout<<value<<endl;
            cout<<staticV<<endl;
        }
        ~Class15_1(){
            staticV-=1;
            show();
        }
};
int Class15_1::staticV = 0;//静态成员变量,初始化。

int main(){
    //Class15_1* p = new Class15_1[3];
    Class15_1* p1 = new Class15_1(5);
    Class15_1* p2 = new Class15_1(80);
    Class15_1* p3 = new Class15_1(20);
               //p[0]->Class15_1(5);
               //p[1]->Class15_1(80);
               //p[2]->Class15_1(20);
    p1->show();//p[0]->show();
    p2->show();//p[1]->show();
    p3->show();//p[2]->show();

    cout<<endl<<"delete"<<endl;
    delete p1;
    p1=NULL;
    delete p2;
    p2=NULL;
    delete p3;
    p3=NULL;
   
    return 0;
}

或是这样写,更符合题意:

#include <iostream>
//#include<bits/stdc++.h>
using namespace std;
class Class15_1{
    int value;
    int static staticV; //声明但未定义,还未分配内存
    public:

        Class15_1(int a){
            value=a;
            staticV+=1;
        }
        void show(){
            cout<<value<<endl;
            cout<<staticV<<endl;
        }
        ~Class15_1(){
            staticV-=1;
            show();
        }
};
int Class15_1::staticV = 0;//静态成员变量,初始化。

int main(){
    //Class15_1* p = new Class15_1[3];
    Class15_1* p1 = new Class15_1(5);
    p1->show();
    Class15_1* p2 = new Class15_1(80);
    p2->show();
    Class15_1* p3 = new Class15_1(20);
    p3->show();
    //p[0]->Class15_1(5);
    //p[1]->Class15_1(80);
    //p[2]->Class15_1(20);
    //p[0]->show();
    //p[1]->show();
    //p[2]->show();

    cout<<endl<<"delete"<<endl;
    delete p1;
    p1=NULL;
    delete p2;
    p2=NULL;
    delete p3;
    p3=NULL;

    return 0;
}

你把编译错误贴出来呀

main函数中需要加上 return 0;

int main(){
    Class15_1* p=new Class15_1[3];
    
    p[0]->Class15_1(5);
    p[1]->Class15_1(80);
    p[2]->Class15_1(20);
    p[0]->show();
    p[1]->show();
    p[2]->show();
    delete p;
    return 0;
}