成绩册22.cpp
#include "GradeBook22.h"
#include <iostream>
#include <string>
GradeBook::GradeBook(string name) {
setCourseName(name);
}
void GradeBook::displayMessage() {
cout << "Welcome to the grade book for " << getCourseName() << endl;
}
void GradeBook::setCourseName(string newName) {
if (courseName.length() <= 25) courseName = newName;
else {
courseName = newName.substr(0, 25);
cout << "Name \"" << newName << "\" exceeds maximum length (25).\n"
<< "Limiting courseName to first 25 characters.\n" << endl;
}
}
string GradeBook::getCourseName() {
return courseName;
}
成绩册22.h
#pragma once
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
class GradeBook {
public:
// Costruttore
GradeBook(string name);
void displayMessage();
void setCourseName(string newName);
string getCourseName();
private:
string courseName;
};
主.cpp
#include <iostream>
#include "GradeBook22.h"
int main()
{
GradeBook GradeBook1("CS101 Introduction to programmingggggggggggggggggggggggggggggggggggggggggggg");
GradeBook1.setCourseName("CS101 Introduction to programmingggggggggggggggggggggggggggg");
GradeBook GradeBook2("CS102 Data Structures in C++");
cout << "GradeBook1 created for course: " << GradeBook1.getCourseName() << "\nGradeBook2 created for course: " << GradeBook2.getCourseName() << endl;
return 0;
}
我从一本书中学习了这个简单的程序,我正在使用Microsoft Visual Studio 2022用C++编写代码。
我不明白为什么只有当我添加了第二个
GradeBook1.setCourseName("CS101 Introduction to programmingggggggggggggggggggggggggggg");
而构造函数应该已经调用了函数.setCourseName()
我尝试过包括头文件、更正构建财产,比如检查构建、重新启动MVS、关闭并重新打开解决方案、复制解决方案,但在我看来,这是一个错误。
我还能做什么?