广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++特殊成员详解
  • 747
分享到

C++特殊成员详解

2024-04-02 19:04:59 747人浏览 泡泡鱼
摘要

目录const成员static成员友元类总结const成员 1.const数据成员:const类型变量不可修改(只读模式),必须采用初始化参数列表的方式初始化。 2.const成员函

const成员

1.const数据成员:const类型变量不可修改(只读模式),必须采用初始化参数列表的方式初始化。

2.const成员函数:const写在小括号的后面,常成员函数不能修改数据成员(只读),常成员函数与普通函数同时存在时,函数名相同时,普通对象有限调用普通函数,普通对象可以调用常成员函数。

3.const对象:const修饰的对象,只能调用常成员函数。


#include<iOStream>
#include<string>
using namespace std;
class king{
public:
	king(int data) :num(data)//初始化参数列表初始化数据
	{
		cout << num << endl;
	}
	void print()const//常成员函数
	{
		cout << "hello!" << endl;
	}
	void printdata()//普通函数
	{
		str = "lijue";
		cout << str << endl;
	}
protected:
	string str;
	const int num;//常数据成员
};
int main(){
	king prince(18);
	prince.print();//普通对象调用常成员函数
	const king boy(12);
	boy.print();//常对象调用常成员函数
	while (1);
	return 0;
}

static成员

#static属于类,是所有对象共有的,可以当对象调用

1.static数据成员:必须在类外初始化,不需要static修饰,需要类名限定(::),不允许初始化参数列表的方式初始化。

2.static成员函数:static写在函数的前面,调用非静态数据成员必须要指定对象。

3.static对象:释放是最后释放的。


#include<iostream>using namespace std;class desk{public:static  void print(desk&chair){chair.data1 = 12;cout << chair.data1//非静态数据成员调用静态成员函数必须指定对象<< "\t" << data //静态数据成员的调用可以不需要指明对象<< endl;                  }protected:static int data;//静态数据成员int data1;//非静态数据成员};int desk::data = 50;int main(){desk chair;chair.print(chair);while (1);return 0;}

友元类

#什么是友元:用friend描述的关系,友元只是提供一个场所,赋予对象打破权限的限定

1.友元函数:分为普通友元函数和以另一个类的成员函数充当友元函数。


//普通友元函数,可以打破权限的限制
#include<iostream>
using namespace std;
void print();
class myfriend{
public:
protected:
	int data = 150;
	friend void print(myfriend&k){
		cout << k.data << endl;
	}
};
int main(){
	myfriend k;
	print(k);
	while (1);
	return 0;
}

//以另一个类的成员函数充当友元函数
#include<iostream>
using namespace std;
class myfriend;
class I{
public:
	void print();
protected:
};
class myfriend{
public:
	friend void I::print();
protected:
	int data = 150;		
};
void I::print()
{
	myfriend k;
	cout << k.data << endl;
}
int main(){
	I K;
    K.print();
	while (1);
	return 0;
}

2.友元类


//友元类
#include<iostream>
using namespace std;
class A;
class B{
public:
	friend class A;
protected:
	int data = 123;
};
class A{
public:
	void printData()
   {
		B l;
		cout << l.data << endl;
   }
protected:
       };
int main()
{
	A l;
	l.printData();
	while (1);
	return 0;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C++特殊成员详解

本文链接: https://www.lsjlt.com/news/158212.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++特殊成员详解
    目录const成员static成员友元类总结const成员 1.const数据成员:const类型变量不可修改(只读模式),必须采用初始化参数列表的方式初始化。 2.const成员函...
    99+
    2022-11-12
  • C++特殊成员函数以及其生成机制详解
    目录前言默认构造函数数据成员初始化析构函数拷贝操作移动操作总结 前言 在C++中,特殊成员函数指的是那些编译器在需要时会自动生成的成员函数。C++98中有四种特殊的成员函数...
    99+
    2022-11-13
  • 一起聊聊C++中的特殊成员函数
    目录一:背景二:特殊成员函数1. 默认构造函数2. 析构函数3. 赋值构造函数4. 赋值运算符一:背景 在C#中要说类默认给我们定义的特殊成员函数,莫过于构造函数,但在 C++ 中这...
    99+
    2022-11-13
  • Python面向对象特殊成员
    类的特殊成员之call #!/usr/bin/env python # _*_coding:utf-8 _*_ class SpecialMembers: # 类的构造方法 def __init...
    99+
    2022-06-04
    面向对象 成员 Python
  • c++特殊构造函数详解
    目录前言拷贝构造函数一、什么是拷贝构造函数二、调用时机注意浅拷贝和深拷贝总结前言 众所周知,构造函数的作用是类在创建对象时的初始化,而拷贝构造函数则是构造函数里的一种特殊构造。 拷贝...
    99+
    2022-11-12
  • C++的静态成员变量和静态成员函数详解
    目录一.static修饰变量二.static修饰函数三.static在类中使用1.创建与初始化 2.使用问题 3.在public、private下static变量使用 四.class...
    99+
    2022-11-12
  • C++指向类成员的指针详解
    目录一.指向普通变量和函数的指针二.指向类成员的指针1.指向类数据成员的指针2.指向类成员函数的指针示例总结序言:在C++中,可以定义一个指针,使其指向类成员函数或或成员函数,然后通...
    99+
    2022-11-12
  • C++类的静态成员变量与静态成员函数详解
    目录1、类的静态成员变量2、静态成员函数总结1、类的静态成员变量 C++类的静态成员变量主要有以下特性: 1.静态成员变量需要类内定义,类外初始化 2.静态成员变量不依赖于类,静态成...
    99+
    2022-11-12
  • C++解析特殊符号tab和换行符号详情
    目录前言: 我们经常会遇到一些Linux内核信息需要,比如一个wifi数据,中间是用tab键盘隔开的,然后每一行用换行符进行区分,如下所示的数据 第一位置是:wifi名称 第二个位...
    99+
    2022-11-12
  • spring中的特殊注解@RequiredArgsConstructor详解
    目录1.注解注入:2.构造器注入:3.setter注入:Lombok在spring中的特殊注解@RequiredArgsConstructor 在了解lombok中的特殊注解之前:了...
    99+
    2022-11-13
  • C++成员函数中const的使用详解
    目录修饰入参值传递址传递const修饰入参修饰返回值修饰函数总结const 在C++中是一个很重要的关键字,其不光可以用来修饰变量,还可以放在函数定义中,这里整理了其在函数中的三个用...
    99+
    2022-11-13
  • C++中类的默认成员函数详解
    目录一、构造函数二、析构函数三、拷贝构造函数四、赋值函数(赋值运算符重载)总结C++中,对于任意一个类,都会为我们提供4个默认的成员函数(如果我们不显示的去声明)—&md...
    99+
    2022-11-13
  • C++静态成员函数和this指针详解
    目录静态成员1.静态成员变量2.静态成员函数成员变量和成员函数分开存储this 指针空指针访问成员函数总结静态成员 静态成员就是在成员变量和成员函数前加上关键字static,称为静态...
    99+
    2022-11-12
  • C#中的引用类型以及特殊引用类型详解
    基本 哪些属于引用类型 类(object,string),接口、数组、委托 引用类型分配在哪里 引用类型变量位于线程栈。引用类型实例分配在托管堆上。当引用类型实例的大小小于85000...
    99+
    2022-11-13
    C# 引用类型 特殊引用类型
  • C++成员解除引用运算符的示例详解
    下面看下成员解除引用运算符,C++允许定义指向类成员的指针,对这种指针进行声明或解除引用时,需要使用一种特殊的表示法。例: class Example { private: ...
    99+
    2022-11-12
  • Python基础-特殊方法整理详解
    目录1、概述2、常用特殊方法及实现2.1 _len__()2.2 __str__()2.3 __iter__()2.4 __getitem__()2.5 __new__()2.6 使...
    99+
    2022-11-12
  • C语言特殊符号的补充理解
    续接符 反斜杠"",他有两种最常见的功能,一就是续航功能,二就是我们提到反斜杠就会很敏感的转义字符。 if("1==a&&2==b&&am...
    99+
    2022-11-13
  • C++类中的六大默认成员函数详解
    在C++中,当你去创建一个类的时候,即便这个类是空类,也会自动生成下面6个默认成员函数,在本篇博客中,我将逐一分析下面6个默认成员函数。 构造函数 构造函数并不是去构造函数的函数,...
    99+
    2022-11-12
  • C++类中六个默认的成员函数详解
    目录浅谈构造函数析构函数拷贝构造函数赋值重载函数const成员函数取地址及const取地址重载函数深挖 构造函数拷贝构造函数赋值运算符重载函数总结浅谈 先来说一下“this...
    99+
    2022-11-12
  • 详解C++中类的六大默认成员函数
    目录一、类的默认成员函数二、构造函数Date(形参列表)1、构造函数的函数名和返回值2、构造函数的调用3、构造函数的重载4、系统生成的默认构造函数5、系统生成的默认构造函数的作用6、...
    99+
    2022-11-13
    C++类默认成员函数 C++类六大默认成员函数 C++类成员函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作