C++ new动态创建对象数组并初始化的方法
#include <iostream>
#include <string>
#include <stdlib.h>
class student{
private:
static int object_count;
int score;
string name;
public:
//自定义构造函数
student(const string& str,int var):name(str),score(var){
object_count++;
std::cout << "user_student()" << std::endl;
}
//析构函数
~student()
{
object_count--;
std::cout << "~student()" << std::endl;
}
void print() const
{
std::cout << "name:" << name << "-----scroe=" << score << "-----now_object_count=" << object_count << std::endl;
}
};
int student::object_count = 0;
int main(int argc, const char** argv) {
student *stu = new student[2]{student("xiao hong",50),student("hua wei",100)};
stu->print();
(stu+1)->print();
system("Pause");
delete []stu;
return 0;
}
编译输出结果:
关键点是利用构造函数初始化:
student(const string& str,int var):name(str),score(var){
object_count++;
std::cout << "user_student()" << std::endl;
}
student *stu = new student[2]{student("xiao hong",50),student("hua wei",100)};