栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++和python中的类

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++和python中的类

文章目录
  • 一、C++中的类
    • 1.public和private
    • 2.构造函数
      • 2.1默认构造函数和自定义构造函数
      • 2.2拷贝构造函数
      • 2.3赋值构造函数
    • 3.析构函数
    • 4.类中的static
    • 5.类中的const
    • 6.组合和聚合
      • 6.1组合(Compostion)
      • 6.2聚合(Aggregation)
  • 二、python中的类
    • 1.访问权限
    • 2.类属性,实例属性,类方法,实例方法,构造函数,析构函数,静态方法


一、C++中的类

 

1.public和private

如果不区分的话,默认是private

#include
class STU{
public:
	int age;
	const char gender;
	void get_age() const;
private:
	int money;
}

 

2.构造函数 2.1默认构造函数和自定义构造函数

如果无自定义的构造函数,编译器会创建默认构造函数

//自定义构造函数
STU::STU(int age){
	this->age = age;
}

 

2.2拷贝构造函数
STU::STU(const STU& s){
	this->age = s.age;
}

拷贝构造函数定义时需要考虑深拷贝和浅拷贝问题。
拷贝构造函数调用的时机:

  • 使用如下形式创建对象时STU s1; STU s2(s1);
  • 将对象(而非对象指针)传递给函数的形参时;
  • 函数返回一个对象(而非对象指针)的时候。
     
2.3赋值构造函数

赋值构造函数实际使用运算符重载来实现,在对象赋值时被调用

STU& STU::operator=(const STU& s){
	this->age = s.age;
	return *this;
}

 

3.析构函数

在对象销毁前被调用

STU::~STU(){
	cout << "I am going to die" < endl;
}

 

4.类中的static
  • static修饰成员变量和成员函数的时候都表示当前的成员属于整个类,而非某个对象;
     
5.类中的const
  • const修饰某成员函数时,在该函数内不能对对象的成员变量进行修改如下
stu::get_age() const{
	cout << this->age << endl;
}
  • const修饰成员变量的时候需要进行初始化,在c++11中可以直接在声明类的时候初始化const对象,更推荐使用初始化列表如下:
STU::STU(int age):gender('m'){
	this->age = age;
}
  • const 修饰某个对象时,为了确保安全,该对象只能调用被const修饰的成员函数。
     
6.组合和聚合 6.1组合(Compostion)

在对象内部又创建了其他对象称为Compostion,这些对象生命周期为同生共死。
 

6.2聚合(Aggregation)

所有的对象都已经创建出来,某一个对象内部存在其他对象的指针,称为Aggregation,他们的生命周期互不影响。
 

二、python中的类 1.访问权限

python中没有private和public关键字,python类的私有成员命名以双下划线开头
 

2.类属性,实例属性,类方法,实例方法,构造函数,析构函数,静态方法
class Human:
	#类属性
	gender = "m"
	# 构造函数
	def __init__(self, name, age):
		#实例属性
		self.name = name
		self.age = age
	# 类方法
	@calssmethod
	def eat(cls):
		print("I am eating")
	# 实例方法
	def run(self):
		print("I am running")
	#析构函数
	def __del__(self):
		print("I am going to die")
	#静态方法,既不属于类,也不属于函数,调用的时候直接用类名调用
	@staticmethod
	def unknown():
		print("Nothing to do")
	
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/833047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号