gpt4 book ai didi

c++ - 错误 C2440 : 'initializing' : cannot convert from 'initializer-list'

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:14 25 4
gpt4 key购买 nike

#include<iostream>
using namespace std;
struct TDate
{
int day, month, year;
void Readfromkb()
{
cout << "\n ENTER DAY MONTH YEAR\n";
cin >> day >> month >> year;
}
void print()
{
cout << day << month << year;
}
private:
int ID;
bool valid;

};
int main()
{
TDate t1, t2,t3={ 1, 2, 3 };
t1.Readfromkb();
t1.print();
cin.ignore();
cin.get();
return 0;

}

为什么我收到错误 1 ​​error C2440: 'initializing' : cannot convert from 'initializer-list' to 'TDate' and 2 IntelliSense: too many initializer values。当我删除 bool valid 和 int ID 时,程序可以运行。为什么会这样?

最佳答案

您收到错误是因为您试图从聚合初始化列表中初始化 TDate。当类型具有私有(private)成员(例如,在您的情况下为 IDvalid)时,无法执行此操作。

您可以通过从三个 int 为您的结构提供一个构造函数并使用 TDate t1, t2, t3(1, 2, 3) 来解决这个问题。

关于c++ - 错误 C2440 : 'initializing' : cannot convert from 'initializer-list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com