您现在的位置是:首页 >技术交流 >通过VS开发人员命令提示符(developer command prompt)查看类网站首页技术交流
通过VS开发人员命令提示符(developer command prompt)查看类
简介通过VS开发人员命令提示符(developer command prompt)查看类
1.首先打开开始菜单栏,找到相应的VS版本。这里以VS2022为例
2.找到developer command prompt选项,点击进入
3.进入控制台,进入源文件所在的盘符(这里以D盘为例,如果是默认C盘可以不用改)
4.输入cd 文件地址,通过路径访问
5.输入dir打开目录
6.输入cl /d1 reportSingleClassLayout类名 文件名(为报告单个类的布局)可直接复制粘贴进命令行,文件名可用tab补全
这里的报错是由于在父类中的属性为string类型,但是正常显示属性
从上图可以明显看出,在Student子类中,包含的属性有_num和_name。只是_name被编译器隐藏,不可被访问。但事实存在该属性
从类的大小计算也可以看出string类型刚好为4个字节
以下为该源文件内的内容
#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
Person(const char* name = "rxy-p")
: _name(name)
{
cout << "Person()" << endl;
}
Person(const Person& p)
: _name(p._name)
{
cout << "Person(const Person& p)" << endl;
}
Person& operator=(const Person& p)
{
cout << "Person operator=(const Person& p)" << endl;
if (this != &p)
_name = p._name;
return *this;
}
~Person()
{
cout << "~Person()" << endl;
}
protected:
string _name; // 姓名
};
class Student : public Person
{
public:
Student(const char* name, int num)
:Person(name)
,_num(num)
{
cout << "Student()" << endl;
}
Student(const Student& s)
:Person(s)
, _num(s._num)
{
cout << "Student(const Student& s)" << endl;
}
Student& operator=(const Student& s)
{
if (this != &s)
{
Person::operator=(s);
//operator=(s);//会产生隐藏,调用Student的operator
_num = s._num;
}
cout << "Student& operator=(const Student& s)" << endl;
return *this;
}
~Student()
{
cout << "~Student()" << endl;
}
protected:
int _num; //学号
};
int main()
{
Student s1("rxy",18);
Student s2(s1);
Person p1 = s1;
s1 = s2;
return 0;
}
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。