侯捷 C++面向对象编程笔记——8 静态 模板 namespace

8.1 static

对于非静态的函数和数据:

非静态的成员函数通过this指针来处理不同的数据(一份函数—>多个对象)

image-20230731154548833

对于静态的函数和数据:

静态函数没有this,不能处理一般的数据,只能处理静态的数据

例1:

class Account
{
public:
	static double m_rate;  //静态变量的声明
	static void set_rate(const double& x) { m_rate = x; } //静态函数
};
double Account::m_rate = 0; //静态变量的定义 一定要有

int main()
{
    //调用静态函数法1——by class name
	Account::set_rate(5.0);
    //调用静态函数法2——by object
	Account a;
	a.set_rate(7.0); //静态函数与a无关/无this
}

例2:设计模式 Singleton(单体)

image-20230731163117925
  • 构造函数放在private中,外界无法调用
  • 设计了getInstance静态函数,来生成并返回唯一的一份

8.2 template

8.2.1 class template 类模板
  • T来代替某种类型
  • 使用时classname<type1> xxx,编译器会把T全部替换为type1
8.2.2 function template 函数模板
image-20230731164908165

比较函数——任何类型都可以进行比较;T来代替某种类型

应用时,不需要写某种类型——编译器自己会推导

8.3 namespace

对东西进行一个包装(不一定要一次性全写在一起,可分开包装在一起)

namespace name
{
...    
}
  1. 用法一:using directive

    #include <iostream>
    using namespace std; //直接把包装全打开
    int main()
    {
    	cin << ...;
    	cout << ...;
    	return 0;
    }
    
  2. 用法二:using declaration

    #include <iostream>
    using std::cout; //只打开一条
    int main()
    {
    	std::cin << ...; //没打开要写全名
    	cout << ...;
    	return 0;
    }
    
  3. 用法三:都写全名

    #include <iostream>
    int main()
    {
    	std::cin << ; 
    	std::cout << ...;
    	return 0;
    }
    

参考资源链接:[侯捷C++课程PPT与代码资源下载](https://wenku.csdn.net/doc/88p7rbg1mc?utm_source=wenku_answer2doc_content) 侯捷C++课程通过丰富的PPT和实践代码示例,为学习者提供了一条清晰的学习路径,特别是在面向对象编程方面。首先,侯捷在PPT深入讲解了面向对象编程的基本概念,包括类的定义、对象的创建、构造函数和析构函数等,这些概念是理解面向对象编程的基石。 紧接着,课程的代码示例让学习者能够看到面向对象特性在实际编程的应用。例如,在类和对象的实践代码,会展示如何封装数据和函数、实现继承以及多态性等。这些代码示例不仅限于理论上的解释,更侧重于实际应用,帮助学习者理解何时以及如何使用面向对象的设计原则来解决问题。 此外,侯捷C++课程还会提供一些高级主题的代码示例,如设计模式的实现,这些高级主题能够帮助学习者构建更为复杂和优雅的软件系统。通过这些材料,学习者可以从基础到进阶逐步建立起扎实的面向对象编程能力。 为了更好地利用这些资源,建议学习者先通过PPT内容获得理论基础,然后通过查看和运行课程的代码示例来加深理解。在实际操作过程,理解每个类、方法和对象是如何协作,以及它们是如何在程序发挥作用的。此外,还可以尝试修改代码示例,以测试自己对面向对象概念的理解,并将所学知识应用于新的问题解决场景。 通过这种理论与实践相结合的学习方法,侯捷C++课程的PPT和代码示例可以有效地帮助学习者掌握面向对象编程的核心思想,并能够将这些概念应用到实际的编程任务去。 参考资源链接:[侯捷C++课程PPT与代码资源下载](https://wenku.csdn.net/doc/88p7rbg1mc?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值