gpt4 book ai didi

C++(非内置/类)静态成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:02 27 4
gpt4 key购买 nike

#include <iostream>
#include <string>

class c1
{
public:
static std::string m1;
static unsigned int m2;
};

//std::string c1::m1 = std::string;
unsigned int c1::m2 = 0;

void main()
{
c1 a;
//std::cout<<a.m1<<std::endl;
std::cout<<a.m2<<std::endl;
}

在这个程序中,启用两条注释行会导致第一条错误。

error C2275: 'std::string' : 非法使用此类型作为表达式

我做错了什么?

最佳答案

因为“std::string”是一个类型,而不是一个值。这是一个可能使这一点更明显的示例:

#include <iostream>
#include <string>

class c1
{
public:
static unsigned int m2;
};

unsigned int c1::m2 = int; // error: int is a type, not a value

void main()
{
c1 a;
std::cout<<a.m2<<std::endl;
}

关于C++(非内置/类)静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942123/

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