在一次偶然的编程中发现,类名的首字母大小写对创建对象会产生影响;百思不得其解,故提问?望大家一起探讨出答案。
小写时候提示需要输入分号。
大写时候则能运行通过。
大写首字母代码附上:
#include<iostream>
using namespace std;
class Clock
{
private:
int hour, minute, second;
public:
void init();
void update();
void display();
};
void Clock::init()
{
hour = minute = second = 0;
}
void Clock::update()
{
second++;
if (second == 60) {
second = 0; minute++;
}
if (minute == 60) {
minute = 0; hour++;
}
if (hour == 24)
hour = 0;
}
void Clock::display()
{
cout << hour << ':' << minute << ':' << second << endl;
}
int main()
{
Clock clock_A;
cout << "CLOCK_A:" << endl;
clock_A.init();
for (int i = 0; i < 100; i++)
{
clock_A.update();
clock_A.display();
}
system("pause");
return 0;
}
C/C++是大小写敏感的,也就是说,Clock和clock本来就是两个东西。你的类叫Clock,不叫clock,所以你写clock,鬼也不知道是什么东西,不报错才怪啊
不是必须的,它是用户自定义的一个标识符,但是一般来说还是用大写
但是你程序中定义的类Clock首字母大写了,上下文要保持一致,所以创建对象时要大写,如果是clock类,创建对象时要小写
#include<iostream>
using namespace std;
class clock
{
private:
int hour, minute, second;
public:
void init();
void update();
void display();
};
void clock::init()
{
hour = minute = second = 0;
}
void clock::update()
{
second++;
if (second == 60) {
second = 0; minute++;
}
if (minute == 60) {
minute = 0; hour++;
}
if (hour == 24)
hour = 0;
}
void clock::display()
{
cout << hour << ':' << minute << ':' << second << endl;
}
int main()
{
clock clock_A;
cout << "CLOCK_A:" << endl;
clock_A.init();
for (int i = 0; i < 100; i++)
{
clock_A.update();
clock_A.display();
}
return 0;
}
定义类的时候类名为大写,那么在下面的代码中,该类名就要大写。反之亦然。但是,建议大写
因为类名clock与函数clock冲突了。所以声明只能class clock A;