C++对象与继承使用的问题有哪些
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"C++对象与继承使用的问题有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++对象与继承使用的问题有哪些"吧!定义抽象类class
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
科技和互联网公司
科技类互联网
互联网 科技公司
互联网医疗科技
互联网科技论文
上海电发互联网科技有限公司
中国互联网有什么科技含量
福州新华互联网科技学校 知乎
金融科技与互联网金融相同和不同
互联网为啥属于高科技
武汉健翔互联网络科技有限公司
威龙国际互联网科技公司
特约风豹互联网科技为什么扣费
南通创西澳互联网科技有限公司
江苏互联网智能科技软件
上海同邻互联网科技有限公司规模
互联网科技新闻
西安左小互联网科技有限公司
承德科技产业互联网平台
互联网的黑科技实验室
互联网科技战争
腾讯科技 互联网女皇
互联网科技上市公司
上海卓越科技 互联网
互联网科技宣传片
和信科技工业互联网
江阴互联网智能科技产品进口
东莞新华互联网科技学校
朱啸虎曾投资哪些互联网科技企业
群盈汇互联网科技有限公司