C++基础巩固
crazyacm
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 左值变右值
template<class T>struct MyRemoveRef{ typedef T type;};void static_cast_test(){ std::string str = "hello"; std::string str1 = "hello"; std::string str2 = "hello"; std::string str3 = "...原创 2019-12-16 16:57:38 · 834 阅读 · 0 评论 -
知识误区-C++头文件
//H1.h#include void func1();void func2();//S_1.CPP#include "H1.h"void func1(){ printf("func1\n");}//S_2.CPP#include "H1.h"void func2(){ printf("func2\n");}//main.cpp#include "H1原创 2017-10-17 16:16:25 · 290 阅读 · 0 评论 -
C++ lambda入门
#include#include#includeusing namespace std;/* lambda表达式: [capture](parameters)->return_type {body} ----- -------- ---------- --- 捕捉式 传入的参数 返回类型 函数体 1.捕捉式:lambda的开头,[=],原创 2016-11-19 17:00:44 · 355 阅读 · 0 评论 -
Item09 绝不在构造和析构过程调用virtual函数
//Item09 绝不在构造和析构过程调用virtual函数#include class base {public: base() { printf("base\n"); f(); } virtual void f() = 0 { printf("base::f\n"); }};class drived :public base {public: drived()原创 2016-09-21 22:32:51 · 311 阅读 · 0 评论 -
strcpy函数
#include #include /*attention:1.检查代码的健壮性。(判断两个指针是否为空)2.NULL可以写在左边,防止少写=。3.保存头指针是为了链式调用 ex:strlen(strcpy(a,b));*/char *strcpy1(char *dest, char *src) { assert((dest != NULL) && (src != NULL)原创 2016-09-21 22:32:14 · 756 阅读 · 0 评论 -
关于重载赋值操作符需要返回引用
#include /* 如果赋值操作符不返回引用代码也能编译通过 但会增加调用copy构造函数的开销(因为返回局部对象会调用拷贝构造函数)。 返回引用的话能减少调用copy构造函数 (effective Item10)*/class A {public: A &operator=(const A& rhs) { printf("operator:%d\n", this-原创 2016-09-21 21:04:06 · 1437 阅读 · 0 评论 -
函数模板全特化与特殊的偏特化
//类模板的全特化和偏特化#include #include templatevoid f(T1 a1, T2 a2) { std::cout << "function template" << std::endl; std::cout << a1 << std::endl; std::cout << a2 << std::endl;}template <>void f(dou原创 2016-09-21 19:17:24 · 580 阅读 · 0 评论 -
类模板的全特化和偏特化
#include #include templateclass A {public: A(T1 self_str1,T2 self_str2) { printf("类模板:\n"); std::cout << self_str1 << std::endl; std::cout << self_str2 << std::endl; printf("\n"); } ~A(原创 2016-09-21 16:29:29 · 1313 阅读 · 0 评论 -
虚函数调用示例程序
#include class base {public: base() { f(); printf("base\n"); } virtual void f() { printf("base::f()\n"); } virtual void t() { printf("base::t()\n"); f(); }};class subtype:public ba原创 2016-09-19 21:55:25 · 375 阅读 · 0 评论 -
初识bitset
#include using namespace std;/* 不够32,使用无符号 int 超过32,每多一个需要在后面添加一个无符号long long 所以后面递增8*/int main() { bitset bit; bitset bit2; printf("32bit_length:%d\n",sizeof(bit));//4 8 16 24 32 40 printf原创 2016-09-19 21:07:58 · 327 阅读 · 0 评论
分享