作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include<iostream>
using namespace std;
class Employee{
public:
Employee(char* name,int _year,float _salary)
{
emp_name=name;
emp_join_year=_year;
emp_salary=_salary;
Printinfo();
}
private:
int WorkedYear(void)
{
//struct date currentdate;
int YearDiff;
//getdate(¤tdate);
YearDiff=2020-emp_join_year;
return YearDiff;
}
void Printinfo(void)
{
cout << "Name :" << emp_name << endl;
cout << "Join Date :" << emp_join_year << endl;
cout << "Salary :" << emp_salary << endl;
cout << "Worked :" << WorkedYear() << "year(s)" << endl;
}
char* emp_name;
int emp_join_year;
float emp_salary;
};
int main()
{
Employee john("john",1987,12500),mike("mike",1980,15500);
}
在这里我在类
emp_name
的
emp_join_year
emp_salary
中使用
Employee()
WorkedYear()
Employee
在清除之前(在行中)它不会产生编译错误,但是如果我在main函数中执行此操作(即使用变量befoe /未声明),它将进行编译错误。为什么会这样?
最佳答案
直到类的定义结束为止,该类定义才被认为是“完整的”。好像所有的类方法以及所有的类成员都同时定义了。 C++标准的简短摘录:
Class members [class.mem]
A class is considered a completely-defined object type (6.8) (orcomplete type) at the closing } of the class-specifier . The class isregarded as complete within its complete-class contexts; otherwise itis regarded as incomplete within its own class member-specification.
关于c++ - 为什么在类(c++)中声明之前使用变量(尤其是在成员函数中)不会产生编译错误?&它如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64513902/
我是一名优秀的程序员,十分优秀!