C++对象与继承使用的问题有哪些
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容主要讲解"C++对象与继承使用的问题有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++对象与继承使用的问题有哪些"吧!定义抽象类class
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
福建数据网络技术基础
那个化合物的数据库最全
浸没式数据服务器
小米互联网科技园位置
直销网络技术参考价格
宁波软件开发驻场正规平台
三星云相册服务器图片
软件开发qt够吗
网络安全法实名制诽谤
泛在网络安全
硕士网络安全与执法
可以生成数据库的uml图
gmail有效服务器
数据库mdf文件管理员
二年级网络安全教育班会
联盟手游对局服务器延迟极高
山西服务器存储虚拟主机
新罗区浩芸电网络技术工作室
网络安全技术面试题及答案
微信打印服务器是什么
绿色域控服务器
应用p2p技术的软件开发
网络安全领域风险
网美至尚网络技术有限公司
网络安全电子信息专硕
企业网络安全表彰
二年级网络安全教育班会
北京市医院管理局 数据库
公安机关网络安全管理制度机制
新一代无线网络技术英语