1.1 第一种用法 在头文件中用extern,将全局变量的声明和定义分开。 (1) 在test1.h中有下列声明: #ifndef TEST1H#defineTEST1Hexterncharg_str[];//用extern声明全局变量g_strvoidfun1();#endif (2) 在test1.cpp中 #include"test1.h"charg_str[] ="123456";//定义全局变量g_strvoidfun1() { cout ...
可以,非静态方法就是实例方法,那是实例化对象之后才产生的,那么属于类的内容它都认识。 (static修饰类:这个用得相对比前面的用法少多了,static一般情况下来说是不可以修饰类的, 如果static要修饰一个类,说明这个类是一个静态内部类(注意static只能修饰一个内部类),也就是匿名内部类。像线程池 ThreadPoolExecutor中...
用法:const T* p(eg:const int* p);T* const p(eg: int* const p = &a);const T* const p(eg:const int* const p = &a)。 tips: const T* p是常量指针,指向可以改,但是指向的值不可以改。 2. T* const p是指针常量,指向的值可以改,但是指向不可以改。 3. 指针常量初始化时必须指明指向...
cout << linestr <<endl;/* string 类型的erase一共三种用法: erase(size_type pos=0, size_type n=npos):删除从下标pos开始的n个字符,比如erase(0,1)就是删除第一个字符(默认删除全部字符) erase( std::iterator position):删除postion处的一个字符(position是一个string类型的迭代器) erase(std::iterat...
在开发中,经常有这样的场景,把一些功能打包为一个动态库,这个库作为工具人,可以被其他不同进程链接,然后把自己的功能提供给对应链接的目标程序。这也是动态库最常见的用法,如下所示: // test_lib.cc#include<stdio.h>intdo_something_in_libso(intnum){printf("do_something_in_libso, num %d\n",num);re...
本文是这个系列的第一篇,简单了解了一下如何使用pybind在python中使用c++函数。正常使用中其实大家较少使用本文中的手动编译,而是使用python的setup模块,这个之后有机会聊聊。后面我们可以慢慢开始探索更高级的用法以及CUDA的引入,顺便聊聊3d vision中用得非常多的CUDA Programming。
在cpp中,字符用单引号,字符串用双引号。和数组的初始化类似,未初始化的话,其值为随机值。 字符数组在某些情况下可以当作字符串来用。注意,字符数组和字符串是不太一样的,字符串数组若没有 '\0',只能当做数组处理,若有 '\0',可以看做字符串,可以cou<<text,否则不可以。用字符串初始化字符数组时,系统会在...
这种用法源自UNIX和Linux操作系统中的惯例,是对特定程序功能的指代。但当我们提到语言本身时,"cpp"就是指代C++语言本身。此外,在编程社区中,"cpp"也经常用作讨论和分享关于C++编程知识的场合或话题的指代。因此,"cpp"在不同的语境下有不同的含义和应用场景。而开发人员能够快速地理解和响应"cpp",...
⽤法 1、.h⽂件直接#include到需要的.cpp⽂件⾥,就相当于把.h⽂件的代码拷贝到.cpp⽂件 2、.cpp⽂件需要先⾃⼰⽣成.o⽂件,把不同.o⽂件连接⽣成可执⾏⽂件。⽐如有3个cpp⽂件:a.cpp、b.cpp、c.cpp,其中⼀个包含main()函数,需要⽣成test程序,步骤:1、⽣成...
作者 推荐理由 lambda表达式可以提高编程效率,精简代码;但与此同时会带来一些代码可读性下降的问题,因此需要熟悉lambda表达式,本文对其基本用法进行了一些总结,虽有不少遗漏之处,对初接触lambda表达式具有一定价值 1.lambda表达式用来代替匿名内部类 2.语法精简 3.语法进阶 静态方法引用: 构造方法引用: 3.应用 集合排序:...