![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
C++知识记录
@jhang
good good study, day day up
展开
-
C++ | int和string的相互转化
int转string1.使用标准库中的to_string()函数string str = "This is " + to_string(888);cout << str<< endl; //输出 This is 888该函数原型有下面九种,可以将整型、浮点型等转换为stringstring to_string (int val);string to_string (long val);string to_string (long long val...原创 2021-04-02 09:51:01 · 171 阅读 · 0 评论 -
C++实现简单的String类
class MString{public: MString(const char* str = NULL); MString(const MString& str); //拷贝构造 ~MString(); MString& operator=(const MString &str); //赋值private: char* m_data; int m_length;};MString::MString(const char* str){ if (str.原创 2021-03-23 22:29:05 · 100 阅读 · 0 评论 -
C++ | 类型转换
static_cast、const_cast、dynamic_cast原创 2020-10-06 10:20:43 · 243 阅读 · 0 评论 -
C++ | 子类对象调用父类函数
在C++中子类对象调用父类函数可通过域操作符(::)来实现,表明所调用函数的作用域。//test.cc#include <iostream>using namespace std;class A{public: virtual void func() { cout <<" this is A" << endl; }};class B : public A{public: virtual void func() { cout &l原创 2020-09-24 09:04:04 · 16786 阅读 · 0 评论 -
在main()函数之前执行的函数
1、全局变量和静态变量的构造函数、赋值函数 全局变量和静态变量的初始化就是 在main函数之前执行的、而对其初始化需要调用的就是其构造函数和赋值函数2、若想要普通函数在在main()之前执行需要加 __attribute__((constructor)) 修饰,如void void __attribute__((constructor)) func(){ std::cout << "before main " << endl }相同的,想让函数在main...原创 2020-09-22 14:49:02 · 2104 阅读 · 0 评论 -
std::move()
std::move() 是C++11的新特性,作用是 将参数转换成右值, 相当于一个类型转换 static_cast<T&&>(value)对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝;可以避免不必要的内存拷贝使用move()后原参数的的值为空函数原型template <typename T>typename remove_reference<T>::type&& move(T&原创 2020-09-07 14:41:25 · 391 阅读 · 0 评论 -
C++关键字之explicit
explicit关键字的作用就是防止类构造函数的隐式自动转换。explicit只能用于修饰只有一个参数的类构造函数,它的作用是表明该构造函数是显示的, 而非隐式的,跟它相对应的另一个关键字是implicit,意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。在C++中, 如果的构造函数只有一个参数时, 那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象.如果类构造函数参数大于或等于两个时,是不会产生隐式转换的,当除了第一个参数以外的其他参..原创 2020-09-02 13:45:26 · 257 阅读 · 0 评论