Steven548 2021-12-30 09:40 采纳率: 100%
浏览 43
已结题

C++ VS19 类的初始化

问题遇到的现象和发生背景

类的初始化

问题相关代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h>
#include <string>


using namespace std;

class Hero
{
    int speed;
    char* name;
public:
    Hero(int speed, char* name) :speed(speed), name(name) {}
};
int main(void)
{
    //  ----OK
    char name[32] = "Athena";
    //Hero Athena = { 20, name };
    //   ----Err
    Hero Athena_1 = { 20, "Athena" };
    return 0;
}

运行结果及报错内容

E0289 no instance of constructor "Hero::Hero" matches the argument list

我的解答思路和尝试过的方法

参见代码
1如果用一个变量name来初始化,就没问题
2如果直接使用字符串来初始化就报错

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • bekote 2021-12-30 10:13
    关注

    直接使用字符串来初始化相当于是char* name= "Athena",定义了一个指针p指向字符串"Athena",但是字符串"Athena"都没有存在内存,也就没有地址,也没办法让指针指向它了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥20 C# TCP服务端,客户端退出后,不断有数据进来
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?