成绩册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、关闭并重新打开解决方案、复制解决方案,但在我看来,这是一个错误。
我还能做什么?