You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中无法实例化类,出现内存错误问题咨询

解决C++类实例化时的内存错误问题

你的代码里有两个关键问题直接导致了实例化时的内存错误,我来帮你逐一拆解:

1. std::string成员的非法初始化

你在类的私有成员里这样写:

string name = 0;
int number = 0;
string date = 0;

std::string没有接受整数0的构造函数,编译器会把0解析成nullptr(空指针),而std::string的构造函数传入空指针属于未定义行为,这就是触发内存错误的核心原因。

正确的初始化方式:

  • 初始化空字符串:string name; 或者 string name = "";
  • 如果需要默认值,也可以写string name = "default_name"; 这类形式

2. 成员函数声明的语法错误

在类内部声明成员函数时,不需要额外加上类名和作用域符号::,你写的:

void Datei::DataInput(int i);

应该改成:

void DataInput(int i);

修正后的完整代码

#pragma once
#include <string>
using namespace std;

class Datei {
public:
    Datei();
    ~Datei();
    void DataInput(int i); // 去掉类名前缀
private:
    string name; // 空字符串初始化,或用""
    int number = 0;
    string date; // 空字符串初始化
};

另外提醒下,如果你还没实现Datei()构造函数、~Datei()析构函数和DataInput成员函数,记得在类外部补充实现(比如对应的.cpp文件里),这部分虽然不是当前内存错误的诱因,但也是完整代码必需的环节。

内容的提问来源于stack exchange,提问作者cpp.programer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:24:01