您现在的位置是:首页 >技术交流 >通过VS开发人员命令提示符(developer command prompt)查看类网站首页技术交流

通过VS开发人员命令提示符(developer command prompt)查看类

RXY24601 2024-06-17 11:26:54
简介通过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;
}
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。