CPP template

1. function template

引用:http://blog.youkuaiyun.com/beyondhaven/article/details/4204345



2. class template

引用:http://blog.youkuaiyun.com/justin12zhu/article/details/3893422



3. STL <List>, from HouJie

It is a doubly linked list, defined in namespace std, 

C++ 黑马程序员 教程是一套较为系统、面向初学者和进阶者的 C++ 学习资源,内容涵盖了从基础语法到高级特性的多个方面。该教程通常以模块化的方式组织,便于学习者循序渐进地掌握 C++ 编程语言。 ### 指针与堆内存管理 在 C++ 中,指针是语言的重要组成部分,用于直接操作内存地址。通过关键字 `new` 可以在堆区动态分配内存,例如: ```cpp int* func() { int* a = new int(10); // 使用 new 在堆上分配内存 return a; } ``` 上述代码中,函数 `func()` 返回一个指向堆内存的指针,并在 `main()` 中使用: ```cpp int main() { int* p = func(); cout << *p << endl; // 输出 10 system("pause"); return 0; } ``` 这种写法展示了如何在函数中动态分配内存并返回指针[^1]。 ### 类与对象的基本实现 C++ 是一门面向对象的编程语言,支持类的定义和使用。例如,定义一个简单的 `Person` 类模板: ```cpp template<class NAMETYPE, class AGETYPE> class Person { public: Person(NAMETYPE name, AGETYPE age); void showPerson(); NAMETYPE m_name; AGETYPE m_age; }; ``` 该类模板在类外实现构造函数和成员函数时,需要加上模板参数列表: ```cpp template<class NAMETYPE, class AGETYPE> Person<NAMETYPE, AGETYPE>::Person(NAMETYPE name, AGETYPE age) { this->m_name = name; this->m_age = age; } template<class NAMETYPE, class AGETYPE> void Person<NAMETYPE, AGETYPE>::showPerson() { cout << "name: " << this->m_name << " age: " << this->m_age << endl; } ``` 测试代码如下: ```cpp void test() { Person<string, int> m1("Yeah", 20); m1.showPerson(); } int main() { test(); } ``` 上述代码展示了类模板的定义与类外实现的基本方式[^3]。 ### 静态成员函数与对象无关性 静态成员函数是类的一部分,但与类的实例无关。它没有 `this` 指针,因此只能访问静态成员变量和静态成员函数: ```cpp class Person { public: static void func() { cout << "static func." << endl; } }; ``` 静态成员函数可以通过对象调用: ```cpp Person p1; p1.func(); ``` 也可以通过类名直接调用: ```cpp Person::func(); ``` 这体现了静态成员函数的独立性[^4]。 ### 字符串的表示方式 在 C++ 中,字符串有两种常见表示方式: 1. **C语言风格字符串**:使用字符数组表示字符串,例如: ```cpp char str1[] = "hello world"; ``` 2. **C++风格字符串**:使用标准库中的 `string` 类型,需包含头文件 `<string>`: ```cpp #include <string> string str2 = "hello world"; ``` 这两种方式分别适用于不同的场景,`string` 类型在处理字符串时更加安全和便捷[^5]。 ### 输出与基本程序结构 C++ 程序通常使用 `iostream` 库进行输入输出操作。例如,输出 "hello world" 的代码如下: ```cpp #include <iostream> using namespace std; int main() { cout << "hello world" << endl; system("pause"); return 0; } ``` 该程序使用 `cout` 输出字符串,并通过 `endl` 换行[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值