C++的一些零散小知识

不定时更新一些

1、空指针nullptr的类型为std::nullptr_t

在这里插入图片描述

一个毫无意义的例子:

template<typename T>
class MyPointer
{
   
public:
	MyPointer() = default;
	MyPointer(std::nullptr_t)	// 可以省略形参名,因为函数体内部并没有用到该参数
	{
   
		m_RawPtr = nullptr;
	}
	T* Raw()
	{
   
		return m_RawPtr;
	}

private:
	T* m_RawPtr;
};

2、函数定义中,如果不需要使用参数的值,可以省略参数名

#include <iostream>

void func(int)
{
   
	return;
}

void func(std::nullptr_t)
{
   
	return;
}

int main()
{
   
	func(0);
	func(nullptr);
	
	std::cout << "end" << "\n";
	return 0;
}

3、静态成员变量在C++17之后可以直接在类内定义并初始化了

只需要加个inline 修饰

可以直接

class MyClass
{
   
	inline static int myVar = 1;
};

而不用

// MyClass.h
class MyClass
{
   
	static int myVar;
};

// myClass.cpp
int MyClass::myVar = 1;

相关推荐

  1. 关于C++一些知识

    2023-12-25 09:50:02       33 阅读
  2. C++一些知识

    2023-12-25 09:50:02       27 阅读
  3. C++一点知识记录

    2023-12-25 09:50:02       40 阅读
  4. 半导体PW和NPW一些知识

    2023-12-25 09:50:02       10 阅读
  5. C++知识】基于范围for循环(C++11)

    2023-12-25 09:50:02       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-25 09:50:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-25 09:50:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-25 09:50:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-25 09:50:02       20 阅读

热门阅读

  1. HBase 搭建过程中常见问题

    2023-12-25 09:50:02       42 阅读
  2. sklearn所需要的知识点

    2023-12-25 09:50:02       31 阅读
  3. Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

    2023-12-25 09:50:02       43 阅读
  4. 7.仿若依后端系统业务实践

    2023-12-25 09:50:02       35 阅读
  5. 解释器模式(Interpreter)

    2023-12-25 09:50:02       37 阅读
  6. centos系统部署rancher1.6版本并部署服务

    2023-12-25 09:50:02       41 阅读