64,666
社区成员
发帖
与我相关
我的任务
分享
//其中str_class 是另外一个类
class str_class
{
public:
char *str;
public:
str_class(const char *s = NULL)
{
str = new char[strlen(s) + 1];
strcpy(str,s);
}
str_class(const str_class &a)
{
str = new char[strlen(a.str) + 1];
strcpy(str,a.str);
}
void print()
{
cout << str << endl;
}
~str_class()
{
delete str;
}
};
class Person{
private:
str_class name;
char sex;
int age;
public:
Person(char *,int ,char ){}
Person() {}
~Person(){};
void print();
};
int main()
{
Person a;
}
类str_class没有缺省的构造函数
里面加个str_class(){}
#include <iostream>
using std::cout;
using std::endl;
class str_class
{
public:
char *str;
public:
str_class(const char *s)
{
str = new char[strlen(s) + 1];
strcpy(str,s);
}
str_class(const str_class &a)
{
str = new char[strlen(a.str) + 1];
strcpy(str,a.str);
}
void print()
{
cout << str << endl;
}
~str_class()
{
delete str;
}
};
class Person{
private:
str_class name;
char sex;
int age;
public:
Person(char *,int ,char );
~Person(){};
void print();
};
//其中str_class 是另外一个类
#include <string.h>
#include <stdio.h>
#include <iostream>
using namespace std;
class str_class
{
public:
char *str;
public:
str_class() //显示定义默认构造函数
{
str=NULL;
}
str_class(const char *a)
{
str=new char[strlen(a)+1];
strcpy(str,a);
}
str_class(const str_class &a)
{
str = new char[strlen(a.str) + 1];
strcpy(str,a.str);
}
void print()
{
cout << str << endl;
}
~str_class()
{
delete str;
str=NULL;
}
};
class Person{
private:
str_class name; //这样申明对象会调用 默认构造函数,而你却缺少一个默认构造函数,所以报错!
char sex;
int age;
public:
Person(char *,int ,char ){}
Person() {}
~Person(){};
void print();
};
int main()
{
Person a;
return 0;
}
const char *s = NULL