C++对象与继承使用的问题有哪些
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容主要讲解"C++对象与继承使用的问题有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++对象与继承使用的问题有哪些"吧!定义抽象类class
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
网站和数据库关系
查询数据库结果显示
计算机三级网络技术出成绩
网络安全配置情况怎么查看
基因组数据库
河北阿米久网络技术有限公司
达梦数据库管理系统价格
倪光南实现网络安全
科技与互联网班会
金山区品牌软件开发价格咨询
天津软件开发集团
江苏综合软件开发售价
数据库基础与应用期中
移动端软件开发工程师简章
网络安全课程的教学
计算机网络技术中级视频
郑州计算机软件开发报价
宽带dns服务器未响应
数据库索引类型外键
网络安全用什么隧道
南方casa连接数据库
代理服务器压力测试
2021国家网络安全宣传语
金蝶 k3 什么数据库
两会期间网络安全自查报告
利驰导入数据库
成都智能边缘计算服务器
单片机软件开发是怎样的
管家婆普普版数据库
物联网软件开发工资