类的基本定义问题
writeFile() 函数里面, 给类Person初始化,直接Personp = { "zhnag san" ,18 } ,但是类 的定义的地方,都没有构造函数,只是定义了俩个变量,这样传参也能准确无误的传到对应的参数。。。。?;
//************二进制文件
#include <stdio.h>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<fstream>
using namespace std;
class Person
{
public:
char m_name;
int m_age;
};
void writeFile()
{
//1.包含头文件
//2.创建流对象
ofstream ofs;
//3.打开文件
ofs.open("person.txt", ios::out | ios::binary);
//4.写文件
Person p = { "zhnag san" ,18 };
ofs.write((const char*)&p, sizeof(Person));
//关闭文件
ofs.close();
}
void readFile()
{
//1.包含头文件
//2.创建流对象
ifstream ifs;
//3.打开文件
ifs.open("person.txt", ios::in | ios::binary);
if (!ifs.is_open())
{
cout << " failed " << endl;
}
//4.读文件
Person p;
ifs.read((char*)&p, sizeof(p));
cout << "name:" << p.m_name << " age : " << p.m_age << endl;
//关闭文件
ifs.close();
}
int main()
{
writeFile();
readFile();
return 0;
} 如果有构造函数的时候怎么写?
是这么写吧?
Person p("zhnag san" ,18); 人造人 发表于 2021-12-7 21:52
如果有构造函数的时候怎么写?
是这么写吧?
有构造函数
构造函数不得这么写么
Person(char name,int age)
{
m_name = name;
m_age = age;
}
我还能这么定义,,所以我纳闷的是这个地方
Person(int age ,char name)
{
m_name = name;
m_age = age;
} 猪猪虾 发表于 2021-12-8 09:26
有构造函数
构造函数不得这么写么
Person(char name,int age)
参数的顺序可以随意,先写 name 和先写 age 都可以
还有,你确定是 char name 吗?
难道不是 char *name 吗?
还有,你确定是 char *name 吗?
确定不是 const char *name 这个?
char m_name; 这个你确定不是 const char *m_name 这个?
页:
[1]