C++对象与继承使用的问题有哪些
发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,本篇内容主要讲解"C++对象与继承使用的问题有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++对象与继承使用的问题有哪些"吧!定义抽象类class
千家信息网最后更新 2024年10月01日C++对象与继承使用的问题有哪些
本篇内容主要讲解"C++对象与继承使用的问题有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++对象与继承使用的问题有哪些"吧!
定义抽象类
class Person {public: virtual void born() = 0;};
类的继承
class Man :public Person {public: void born() { cout << " 出生了一个男人" << endl; }};
使用new关键字实例化对象,只能用指针变量来接收
因此,在对象的实例化,作为函数的参数和返回值时,都用要使用指针
Person* generatePersion(Person* person1) { Person* person = new Man(); retrun person;}
使用普通的对象属性及方法时使用.来引用,但是用指针表示的对象则使用->
Student stu1("张三",18,"北京"); // 直接用变量实例化对象Student *stu2 = new Student("李四",20,"上海"); // 通过指针实例化对象stu1.study();stu2->study();
定义类的时候,属性需要赋初始值的请况
class StudentId {private: static StudentId* si; // 必须用static修饰 static string id; // 必须用static修饰};string StudentId::id = "20200001";StudentId* StudentId::si = NULL;
类的前置声明
c++在使用这个类之前,必须要定义这个类,不然编译器不知道有这个类
因此,当两个类互相嵌套时,可能会报错,解决的方法就是使用前置声明
如果在类的方法实现过程中,还用到了另一个类的相关方法
那么最好是将类方法的定义和实现分开写
class AbstractChatroom; // 类的前置声明class Member{protected: AbstractChatroom *chatroom; // 使用之前必须先定义 void setChatroom(AbstractChatroom *chatroom) { // 类方法可以在类定义的时候就实现 this->chatroom = chatroom; } void chatroom_play(); // 当方法内部需要使用到前置声明类中的方法时,只能先定义,后实现};class AbstractChatroom{ // 类的具体定义public: Member member; // 类的相互嵌套 virtual void sendText(string from,string to,string message) = 0; void play(){ cout << "在聊天室里玩耍!" << enld; }};void Member::chatroom_play(){ // 类方法的具体实现 chatroom -> play();}
命名空间的使用
#includeusing namespace std;namespace my_namespace{ // 定义命名空间class Student{ // 命名空间中的对象public: string name; int age; string home; Student(string name, int age, string home); string getName(); int getAge(); string getHome(); void setName(string name); void setAge(int age); void setHome(string home);};Student::Student(string name, int age, string home){ this -> name = name; this -> age = age; this -> home = home;}string Student::getName(){ return name;}int Student::getAge(){ return age;}string Student::getHome(){ return home;}void Student::setName(string name){ this -> name = name;}void Student::setAge(int age){ this -> age = age;}void Student::setHome(string home){ this -> home = home;}}// 使用命名空间,方法1using namespace my_namespace;int main(){ Student *stu1 = new Student(" 张三", 18, "北京"); cout << stu1 -> getName() << endl;}// 使用命名空间,方法2int main(){ my_namespace::Student *stu1 = new my_namespace::Student(" 张三", 18, "北京"); cout << stu1 -> getName() << endl;}
到此,相信大家对"C++对象与继承使用的问题有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
对象
空间
实例
指针
问题
C++
张三
北京
内容
变量
属性
时候
学习
实用
普通
更深
两个
关键
关键字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库的英文缩写是
枫免流服务器最新版
海德威软件开发
网络安全对学历的要求
华为网络技术与应用实训报告
服务器安全防护的质量
诚一网络技术有限有限公司
网络技术经理人
网络安全宣传周您的网络安全吗
软件开发费用测算标准
客户端验证服务器证书
公共 网络安全威胁
mdb数据库修改语句
网络安全教育作文300zi
辽宁省网络安全信息化会议
南京中兴软件开发二部
暗影格斗3服务器地域怎么改
FF14服务器之间互通吗
宜章学it软件开发薪资
组态王udp服务器
普陀区及时网络技术代理品牌
计算机网络技术是专业名词嘛
软件开发产业园
妙宇网络技术
数据库布丁psu
php程序软件开发是什么
济南奥达软件开发有限公司电话
数据库代数优化练习
租服务器挖矿
我的世界中国版饥饿游戏服务器