当前位置: 首页 > wzjs >正文

网站平台建设保密协议全球搜索引擎

网站平台建设保密协议,全球搜索引擎,移动互联网终端设备的主要技术指标是什么,商城网站建设技术论坛c class的使用总结 1.继承2.静态成员变量与静态成员函数3.多态4.虚函数5.纯虚函数6.友元类、友元函数6.1 友元类6.2 友元函数 1.继承 类Man、WoMan 继承于类Person。 类Man、WoMan 的实例对象都可以使用类Person中public属性的成员及成员函数。 #include<iostream>cla…

c++ class的使用总结

  • 1.继承
  • 2.静态成员变量与静态成员函数
  • 3.多态
  • 4.虚函数
  • 5.纯虚函数
  • 6.友元类、友元函数
    • 6.1 友元类
    • 6.2 友元函数

1.继承

ManWoMan 继承于类Person

ManWoMan 的实例对象都可以使用类Person中public属性的成员及成员函数。

#include<iostream>class Person
{
public://friend Man;Person() { m_age = 0; }Person(int age):m_age(age){};void spleep() { std::cout << "Sleeping zzz" << std::endl; }void speak() { std::cout << "Speaking" << std::endl; }void play() { std::cout << "Playing ..." << std::endl; };virtual ~Person() {};
private:int m_age;int get_age() { return m_age; }};class Man: public Person
{
public:Man() {};void play()  { std::cout << "Playing basketball!" << std::endl; }~Man() {};
};class WoMan : public Person
{
public:WoMan() {};void play() { std::cout << "Playing tennis!" << std::endl; }~WoMan() {};
};int main()
{Person p1;p1.play();Man m1;m1.spleep();WoMan wm1;wm1.speak();return 0;
}
//Playing ...
//Sleeping zzz
//Speaking

2.静态成员变量与静态成员函数

静态成员变量不专属于某一个类对象,可以通过类或者类对象进行访问。
静态成员变量处于全局区。

静态成员函数也是相似的,可以通过类或者类对象进行访问。
静态成员函数只能访问静态变量,不能访问非静态变量。
m_salary 非静态变量,则:

static void get_salary() { cout << "static func: " << m_salary << endl; }

会报错。

完整demo如下:

#include<iostream>
using namespace std;
class Person
{
public:static int m_age;int m_salary=10;static void get_age() { cout <<"static func: "<< m_age << endl; }//static void get_salary() { cout << "static func: " << m_salary << endl; }};int Person::m_age = 10;int main()
{Person p;cout << "static var: " << p.m_age << endl;	cout << "static var: " << Person::m_age<< endl;p.get_age() ;Person::get_age();	return 0;
}//static var: 10
//static var: 10
//static func: 10
//static func: 10

3.多态

ManWoMan 继承于类Person,同时这三个类中都有成员函数play。这就是多态。

#include<iostream>class Person
{
public:Person() { }void play() { std::cout << "Playing ..." << std::endl; };~Person() {};
};class Man: public Person
{
public:Man() {};void play()  { std::cout << "Playing basketball!" << std::endl; }~Man() {};
};class WoMan : public Person
{
public:WoMan() {};void play() { std::cout << "Playing tennis!" << std::endl; }~WoMan() {};
};

实例化并打印结果:

int main()
{Person p1;p1.play();Man m1;m1.play();WoMan wm1;wm1.play();return 0;
}//Playing ...
//Playing basketball!
//Playing tennis!

4.虚函数

当基类指针指向派生类对象时,调用时却使用了基类中相应的成员函数。


int main()
{Man m1;Person *p1 = &m1;p1->play();
}
//Playing ...

解决方法是在父类的成员函数前,加上virtual关键字。

另外,子类对应的成员函数定义时,也可加上 override 关键字(可选,推荐)。

#include<iostream>class Person
{
public:Person() { }virtual void play() { std::cout << "Playing ..." << std::endl; };~Person() {};
};class Man: public Person
{
public:Man() {};void play() override  { std::cout << "Playing basketball!" << std::endl; }~Man() {};
};class WoMan : public Person
{
public:WoMan() {};void play()override { std::cout << "Playing tennis!" << std::endl; }~WoMan() {};
};int main()
{Man m1;Person *p1 = &m1;p1->play();
}//Playing basketball!

这样仍然可以调用子类的成员函数。

5.纯虚函数

在父类中对某成员函数不进行实现,而放在子类中具体实现,就要用到纯虚函数。

virtual void play() =0;

它会强制要求子类进行实现。

#include<iostream>class Person
{
public:Person() { }virtual void play() =0;~Person() {};
};class Man: public Person
{
public:Man() {};void play() override  { std::cout << "Playing basketball!" << std::endl; }~Man() {};
};class WoMan : public Person
{
public:WoMan() {};void play()override { std::cout << "Playing tennis!" << std::endl; }~WoMan() {};
};int main()
{Man m1;Person *p1 = &m1;p1->play();
}
//Playing basketball!

6.友元类、友元函数

6.1 友元类

类进行实例化后,通过其对象不能访问类的私有属性和函数。

如这个例子中,Person类的m_age是其私有属性。若Friend类想要访问,则可以将在Person定义中将其添加为友元类。

friend class Friend;	

完整代码如下:

#include<iostream>
class Person;class Friend
{
public:Friend() {};void get_age(Person p);~Friend() {};
};class Person
{
public:friend class Friend;	Person(int age) :m_age(age) {};virtual ~Person() {};
private:int m_age;
};void Friend::get_age(Person p)
{std::cout << p.m_age<<std::endl;
}int main()
{Person p1(10);Friend f1;f1.get_age(p1);return 0;
}
//10

6.2 友元函数

除了将整个类都作为友元类,还可以定义将类的函数作为其他类的友元。
如将 Friendget_age成员函数作为Person类的友元函数。

friend void Friend::get_age(Person p);

完整代码如下:

#include<iostream>
class Person;class Friend
{
public:Friend() {};void get_age(Person p);~Friend() {};
};class Person
{
public:friend void Friend::get_age(Person p);;Person() { m_age = 0; }Person(int age) :m_age(age) {};virtual ~Person() {};
private:int m_age;
};void Friend::get_age(Person p)
{std::cout << p.m_age<<std::endl;
}int main()
{Person p1(10);Friend f1;f1.get_age(p1);return 0;
}
//10
http://www.dtcms.com/wzjs/435147.html

相关文章:

  • 湛江做网站开发百度知道客服电话人工服务
  • 怎么为网站做外链百度推广账户优化方案
  • 做设计一般用的素材网站是什么意思网站提交入口百度
  • 手机端怎样做网站建设产品软文怎么写
  • 做网站设计电脑买什么高端本好营销策略怎么写范文
  • 自己做网站图片存在哪里电商网站设计模板
  • 做网站端口映射手机端关键词排名优化软件
  • ftp上传wordpress主题电池优化大师下载
  • 织梦游戏网站源码百度浏览器下载安装
  • 女同性怎么做的视频网站电商网站策划
  • 做淘宝有哪些推广网站动态网站建设
  • 鄂州网站建设seo课程简介
  • 通信设计是干什么的长沙百度搜索排名优化
  • 网站的市场营销方案网站权重怎么查
  • 石家庄做物流的网站seo排名优化什么意思
  • 上海网站seo排名点击器
  • 平台期一般持续多久奉化首页的关键词优化
  • 受欢迎的昆明网站建设整站关键词快速排名
  • 建设工程竞标网站近期国际新闻
  • 聊城做网站哪里好百度app登录
  • 深圳网站推广公司重庆百度整站优化
  • 邵东建设公司网站哪家好百度识图官网
  • 动态网站开发教程 表单程序南宁网站关键词推广
  • 微信上微网站怎么做的吗做小程序要多少钱
  • 支付建设网站的费用什么科目北京seo结算
  • 网站建设电商考试如何成为app推广代理
  • 建设网站需要的材料网站建设流程
  • 今天体育新闻最新消息seo查询网站是什么
  • 建德营销型网站建设沈阳seo团队
  • 做网站能用思源黑体吗百度云电脑版网站入口