鱼C论坛

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

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

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

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

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

x
writeFile() 函数里面,        给类Person初始化,直接Person  p = { "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[64];
        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;
}
最佳答案
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 这个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

Person p("zhnag san" ,18);
想知道小甲鱼最近在做啥?请访问 -> 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;
}
想知道小甲鱼最近在做啥?请访问 -> 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 这个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 05:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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