鱼C论坛

 找回密码
 立即注册
查看: 819|回复: 3

[已解决]类的基本定义问题

[复制链接]
发表于 2021-12-7 21:44:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
writeFile() 函数里面,        给类Person初始化,直接Person  p = { "zhnag san" ,18 } ,但是类 的定义的地方,都没有构造函数,只是定义了俩个变量,

这样传参也能准确无误的传到对应的参数。。。。?;

  1. //************二进制文件
  2. #include <stdio.h>
  3. #include<iostream>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<string>
  7. #include<fstream>

  8. using namespace std;

  9. class Person
  10. {
  11. public:
  12.         char m_name[64];
  13.         int m_age;
  14. };

  15. void writeFile()
  16. {
  17.         //1.包含头文件

  18.         //2.创建流对象
  19.         ofstream ofs;

  20.         //3.打开文件
  21.         ofs.open("person.txt", ios::out | ios::binary);

  22.         //4.写文件
  23.         Person p = { "zhnag san" ,18 };
  24.         ofs.write((const char*)&p, sizeof(Person));

  25.         //关闭文件
  26.         ofs.close();
  27. }

  28. void readFile()
  29. {
  30.         //1.包含头文件

  31.         //2.创建流对象
  32.         ifstream ifs;

  33.         //3.打开文件
  34.         ifs.open("person.txt", ios::in | ios::binary);
  35.         if (!ifs.is_open())
  36.         {
  37.                 cout << " failed " << endl;
  38.         }

  39.         //4.读文件
  40.         Person p;
  41.         ifs.read((char*)&p, sizeof(p));

  42.         cout << "name:" << p.m_name << " age : " << p.m_age << endl;

  43.         //关闭文件
  44.         ifs.close();
  45. }


  46. int main()
  47. {
  48.         writeFile();
  49.         readFile();
  50.         return 0;
  51. }
复制代码
最佳答案
2021-12-8 10:07:06
猪猪虾 发表于 2021-12-8 09:26
有构造函数
构造函数不得这么写么
Person(char name,int age)

参数的顺序可以随意,先写 name 和先写 age 都可以
还有,你确定是 char name 吗?
难道不是 char *name 吗?
还有,你确定是 char *name 吗?
确定不是 const char *name 这个?
char m_name[64]; 这个你确定不是 const char *m_name 这个?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 21:52:35 | 显示全部楼层
如果有构造函数的时候怎么写?
是这么写吧?

Person p("zhnag san" ,18);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-8 09:26:35 | 显示全部楼层
人造人 发表于 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;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-8 10:07:06 | 显示全部楼层    本楼为最佳答案   
猪猪虾 发表于 2021-12-8 09:26
有构造函数
构造函数不得这么写么
Person(char name,int age)

参数的顺序可以随意,先写 name 和先写 age 都可以
还有,你确定是 char name 吗?
难道不是 char *name 吗?
还有,你确定是 char *name 吗?
确定不是 const char *name 这个?
char m_name[64]; 这个你确定不是 const char *m_name 这个?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 06:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表