我的第一个c ++程序,我似乎无法弄清楚为什么它说我的对象'没有在范围内宣布。我已经包含了头文件,我原型化了我的功能。我习惯于在java中进行编码,这种分离对我来说非常困惑。
该计划的目标很简单:创建一个课程:学期。
学期:将有ID,姓名,学分,标记。
提供get / set方法来输入和输出kb
主要
#include <iostream>
#include <stdio.h>
#include "Semester.h"
using namespace std;
int main()
{
Semester s1;
cout << "Please enter ID" << endl;
cin >> sl.setid();
cout << "ID: " << s1.getid();
}
CPP
#include <stdio.h>
#include <iostream>
#include "Semester.h"
using namespace std;
Semester::Semester(){
}
//setters
void Semester::setid(string t_id) {id = t_id;}
void Semester::setunit(string t_name) {unit_name = t_name;}
void Semester::setcredit(int t_credit){credit = t_credit;}
void Semester::setmark(int t_marks) {marks = t_marks;}
//getters
string Semester::getid() {return id;}
string Semester::getunit() {return unit_name;}
int Semester::getcredit() {return credit;}
int Semester::getmark() {return marks;}
头
#ifndef SEMESTER_H
#define SEMESTER_H
#include <stdio.h>
#include <iostream>
class Semester{
private: //variables
std::string id;
std:: string unit_name;
int credit, marks;
public:
Semester(); //constructor
//setters
void setid(std::string id);
void setunit(std::string name);
void setcredit(int credit);
void setmark(int marks);
//getters
std::string getid();
std::string getunit();
int getcredit();
int getmark();
};
#endif // SEMESTER_H
答案 0 :(得分:0)
以下行不正确。
cin >> sl.setid();
该行的问题:
setid()
的返回类型为void
。这不能用作流提取功能的RHS。您需要的是:
std::string id;
cin >> id;
s1.setid(id);
改进建议:制作所有get
个函数const
成员函数。
//getters
std::string getid() const;
std::string getunit() const;
int getcredit() const;
int getmark() const;
确保相应地更新.cpp文件。