关于类的一些遗漏的点。

 #include <iostream>
#include <typeinfo>
#include <string>
using namespace std; class Person {
//设为友元,可访问类的非公有成员
friend void read(istream &is, Person &p);
friend void print(ostream &os, Person &p);
private:
string name;
string address;
mutable int count = ;//突破界限之const函数改值 public:
static string t;
Person() = default;
Person(string _name, string _address) {
name = _name;
address = _address;
}
string getName() const {
++ count;//mutable 可变值
t = "blue"; //static 也可变
return this->name;
}
string getAddress() const {
return this->address;
}
int getCount() const {
return this->count;
}
}; string Person::t = "yellow"; //read the obj
void read(istream &is, Person &p)
{
is >> p.name >> p.address;
} //print the obj
void print(ostream &os, Person &p)
{
os << p.name << " " << p.address;
} int main()
{
Person yoci("nan", "Shan'an-Xi");
cout << yoci.getName() << endl;
cout << yoci.getAddress() << endl;
cout << yoci.getCount() << endl;
cout << Person::t << endl; return ;
}

总结:

1. 友元函数和友元类:在类内部声明友元(在该函数/类前加上friend即可),友元可以访问非公有成员在内的所有成员;

2. mutable 关键字,界限突破。声明mutable 变量,该变量一直处于可改变状态,就算在const函数内,照该不误;

3. 默认生成构造函数 ClassName() = default;为该类生成默认构造函数;

4. 删除函数:func() = delete; 禁止实现该函数;

5. 静态成员

(1)静态数据成员:static声明,属于类而非对象,所有对象共享该变量可以使用 作用域运算符:: 对象. 成员函数 三种方法访问。

(2)静态函数成员:不包含this指针,不可声明为const,不能访问非静态成员(需要this指针,而它没有)

6.静态数据成员和一般成员的区别

(1)不专属于谁,属于大家(所有对象);

(2)类外初始化;

(3)可用做默认参数

(4)可以是所属类 类型

(5)const函数内部仍可改值(就像加了mutable一样)

(6)访问方式:不能使用this->来访问。

参考资料:

【1】https://www.cnblogs.com/qionglouyuyu/p/4620401.html

C++ 类再探的更多相关文章

  1. 【再探backbone 02】集合-Collection

    前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...

  2. ViewPager+Fragment再探:和TAB滑动条一起三者结合

    Fragment前篇: <Android Fragment初探:静态Fragment组成Activity> ViewPager前篇: <Android ViewPager初探:让页面 ...

  3. 再探jQuery

    再探jQuery 前言:在使用jQuery的时候发现一些知识点记得并不牢固,因此希望通过总结知识点加深对jQuery的应用,也希望和各位博友共同分享. jQuery是一个JavaScript库,它极大 ...

  4. [老老实实学WCF] 第五篇 再探通信--ClientBase

    老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创 ...

  5. 第四节:SignalR灵魂所在Hub模型及再探聊天室样例

    一. 整体介绍 本节:开始介绍SignalR另外一种通讯模型Hub(中心模型,或者叫集线器模型),它是一种RPC模式,允许客户端和服务器端各自自定义方法并且相互调用,对开发者来说相当友好. 该节包括的 ...

  6. 深入出不来nodejs源码-内置模块引入再探

    我发现每次细看源码都能发现我之前写的一些东西是错误的,去改掉吧,又很不协调,不改吧,看着又脑阔疼…… 所以,这一节再探,是对之前一些说法的纠正,另外再缝缝补补一些新的内容. 错误在哪呢?在之前的初探中 ...

  7. c++再探string之eager-copy、COW和SSO方案

    在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的. 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) ...

  8. 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT)

    再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Blueste ...

  9. Spark Streaming揭秘 Day7 再探Job Scheduler

    Spark Streaming揭秘 Day7 再探Job Scheduler 今天,我们对Job Scheduler再进一步深入一下,对一些更加细节的源码进行分析. Job Scheduler启动 在 ...

随机推荐

  1. 单例模式-java

    /** * The MIT License * Copyright (c) 2014-2016 Ilkka Seppälä * <p> * Permission is hereby gra ...

  2. Spring Cloud(7):事件驱动(Stream)分布式缓存(Redis)及消息队列(Kafka)

    分布式缓存(Redis)及消息队列(Kafka) 设想一种情况,服务A频繁的调用服务B的数据,但是服务B的数据更新的并不频繁. 实际上,这种情况并不少见,大多数情况,用户的操作更多的是查询.如果我们缓 ...

  3. WordPress的摘要显示方式

    WordPress的后台有摘要显示的栏目,如果没有显示,需要设置一下,如图 在列表页现实的内容的时候,一般是有摘要的显示摘要,没有摘要的截取文章的前一部分文字.代码如下 <?php if(has ...

  4. 游戏开发中伪随机正态分布JavaScript

    在游戏开发中经常遇到随机奖励的情况,一般会采取先生成数组,再一个一个取的方式发随机奖励. 下面是js测试正态分布代码: <!DOCTYPE html> <html lang=&quo ...

  5. 使用Vulcan工具构建真实的业务负载进行网络压力测试,满足SD-WAN,White-box Switch的Performance,QoE,SLA测试要求

    工具链接#  https://xenanetworks.com/vulcan/ 使用Vulcan工具,可构建真实的业务负载进行网络压力测试 满足Performance,QoE,SLA等测试要求 硬件指 ...

  6. 使用JavaScript实现量化策略并发执行

    本文代码和文章发在FMZ发明者比特币量化交易平台上: 使用JavaScript实现量化策略并发执行--封装Go函数 - 发明者量化 https://www.fmz.com/digest-topic/3 ...

  7. .NET Core学习笔记(2)—— WPF使用UWP Custom Control

    自.NET Core 3.0开始,某软加入了对WPF的支持.同时对XAML Islands也做了进一步加强.在.NET Core 3.0之前,我们只能在WPF程序中,通过两种方式有限制地使用Stand ...

  8. Vue 开发技巧或者说Vue知识点梳理(转,自个学习)

    Vue 组件通讯 ——常见使用场景可以分为三类: 父子通信: 父向子传递数据是通过 props,子向父是通过 events($emit):通过父链 / 子链也可以通信($parent / $child ...

  9. Chocolate Eating【二分】

    题目链接:https://ac.nowcoder.com/acm/contest/1577/K 题目大意: 给出n块巧克力,m天吃完.每块巧克力有a[i]快乐值,每天可以选择吃任意块或者不吃巧克力(按 ...

  10. Redis部分