C++
Wonder233
这个作者很懒,什么都没留下…
展开
-
C++ fork()以及缓冲结合考点
字符串"Hello"会被输出几次?int main() { printf("Hello"); fork(); printf("Hello");}分两点说吧:1.fork()函数会把它所在语句以后的语句复制到一个子进程里,单独执行。2.如果printf函数最后没有"\n",则输出缓冲区不会被立即清空,而fork函数会把输出缓冲区里的内容也都复制到子进程里。所以,父进程和子原创 2016-10-21 21:12:54 · 553 阅读 · 0 评论 -
C++拷贝构造函数
#include "stdio.h" class A{ public: A() { printf("1"); } A(A &a) { printf("2"); } A &operator=(const A &a) { printf("3"); return原创 2016-10-18 21:33:46 · 326 阅读 · 0 评论 -
c++中的类占空间
#pragma pack(2)class BU{ int number; //4 union UBffer { char buffer[13]; int number; }ubuf; void foo(){} //0 typedef char*(*f)(void*); //0 enum{hdd,ssd,blueray}disk; //4}bu;int number; 占原创 2016-10-18 22:11:11 · 431 阅读 · 0 评论 -
c++菱形继承产生的问题及解决
#include#include#includeusing namespace std;class A {public: A(){printf("A create.\n");} int a; virtual void fun(){}};class B: public A{public: B(){printf("B create.\n");}原创 2016-10-18 22:24:10 · 737 阅读 · 0 评论 -
c++ 关于面向对象的综合笔记
面向对象有三种特性:派生,继承,多态 其中多态性有两种,一种是依靠函数重载实现的静态绑定,一种是依靠虚函数实现的动态绑定。动态绑定跟对象的引用类型无关,他会根据具体的对象调用对应的方法。原创 2016-11-09 22:18:46 · 376 阅读 · 0 评论 -
C++有关编译器的笔记
assert 含义是断言,它是标准C++的cassert头文件中定义的一个宏,用来判断一个条件表达式的值是否为ture,如果不为true, 程序会终止,并且报告出错误,这样就很容易将错误定位 通常我们开发的程序有2种模式:Debug模式和Release模式 1. 在Debug模式下,编译器会记录很多调试信息,也可以加入很多测试代码,比如加入断言assert, 方便我们程序员测试,以及出现bug原创 2016-11-09 22:20:13 · 423 阅读 · 0 评论 -
c 各个阶段解释
由多个源文件组成的C程序,经过编辑、预处理、编译,链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?A、预处理B、编译C、链接D、执行A: 预处理是 C 语言程序从源代码变成可执行程序的第一步,主要是 C 语言编译器对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等。B: 编译之前,C 语言编译器会进行词法分析、语法分析原创 2016-10-18 22:29:45 · 1291 阅读 · 0 评论 -
C++ 内联函数的使用
对于一个频繁使用的短小函数,在C语言中用宏实现,在C++中应用什么实现?答案是:内联函数1、内联函数的原理编译器将使用相应的函数代码替换函数调用。例如,如果一个函数被指定为inline 函数则它将在程序中每个调用点上被内联地展开int minVal2 = min( i, j ); ====> int minVal2 = i inline的原理,是用空间换取时间的做法原创 2016-10-19 21:18:59 · 498 阅读 · 0 评论 -
类成员函数的重载、覆盖和隐藏区别
重载:成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。#include using std::cin;using std::cout;using std::endl;class A{public: void show(int val) { cout << val; }转载 2016-10-19 21:32:51 · 690 阅读 · 0 评论 -
C/C++ 中的0长数组(柔性数组)
在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如:StructPacket{Int state;Int len;Char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持}; 首先对转载 2016-10-19 21:38:04 · 309 阅读 · 0 评论 -
C++函数指针指向一个返回函数指针的函数
定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?A:int (*(*F)(int, int))(int)B:int (*F)(int, int)C:int (*(*F)(int, int))D:*(*F)(int, int)(int)先看优先级最高的,即内部括号(*F),看出F是一个指针原创 2016-11-01 20:51:33 · 899 阅读 · 0 评论 -
C++中的this指针汇总
1、下面程序段包含4个函数,其中具有隐含this指针的是哪个函数?int f1();class T{ public:static int f2(); private:friend int f3(); protect:int f4();};静态成员函数属于整个类所拥有,没有this指针 友员函数不是这个类的成员,没有 类的非静态成员函数 有 总之,类的每个非静态成原创 2016-11-08 21:14:59 · 612 阅读 · 1 评论 -
C++ 计算机存储补码
include<stdio.h>int main(){ unsigned char i=7; int j=0; for(;i>0;i-=3) { ++j; } printf("%d\n",j); return 0;}请问该程序的输出是多少?这题正着推不容易,可以考虑反着推 要想退出循环 最后必定是 i=0 根据选原创 2016-11-08 21:17:01 · 566 阅读 · 0 评论 -
C 关键字const的作用
const int *x; //①int * const x; //②const修饰离它最近的对象, ①语句,const修饰的是const,指针变量x指向整型常数,x的值可以改变,但不能试图改变指向的整型常数; ②语句,const修饰的是x,指针变量x的值不能改变。const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数原创 2016-11-08 21:31:30 · 547 阅读 · 0 评论 -
C++类方法与实例方法
类方法:使用static修饰,属于整个类的,不是属于某个实例的,只能处理static域或调用static方法;实例方法:属于对象的方法,由对象来调用。 一个类中的方法可以互相调用。但要注意:实例方法可以调用该类中的其他方法。类方法只能调用其他类方法,不能调用实例方法。 当类文件加载到内存时,实例方法不会被分配内存空间,只有在对象创建之后才会分配。而类方法在该类被加载到内存时就分配了相应原创 2016-10-21 21:31:11 · 2033 阅读 · 0 评论 -
C++ map的基本操作和使用
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; mapmapstring; mapmapint; mapmapstring; mapmapchar; mapmapchar; mapmapint转载 2016-10-13 21:53:09 · 294 阅读 · 0 评论 -
ofstream与ifstream的操作
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout 2、转载 2016-10-13 21:51:21 · 311 阅读 · 0 评论 -
C++获取指定文件夹下的所有文件名(或路径)
#include #include #include #include #include using namespace std; //其实两个字符串连在一起比如string可惜写成:str1+str2+“xxx”。。。//获取所有的文件名 void GetAllFiles( string path, vector& files) {转载 2016-10-12 21:26:44 · 1362 阅读 · 0 评论 -
opencv—Mat按行赋值
Mat中row()函数为创建一个指定行数的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据。因此在这段代码中,第八行代码的意思就是把C矩阵的第三行给dsttemp,即dsttemp指向C矩阵的第三行的空间。那么将A矩阵用copyto函数赋值给dsttemp变量,则C矩阵的第三行的内容也会改变。原创 2016-10-12 20:30:32 · 14793 阅读 · 1 评论 -
OpenCV 矩阵(图像)操作函数
原链接:http://www.360doc.com/content/16/0324/09/31190201_544801196.shtml有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部分函数支持COI,如果COI设置,只处理感兴趣转载 2016-03-24 09:36:18 · 504 阅读 · 0 评论 -
C++获取指定文件夹下的所有文件名(或路径)
#include #include #include #include #include using namespace std; //其实两个字符串连在一起比如string可惜写成:str1+str2+“xxx”。。。//获取所有的文件名 void GetAllFiles( string path, vector& files) {转载 2016-10-13 22:18:09 · 7363 阅读 · 1 评论 -
C++ 缺省参数静态绑定
以下程序输出结果是____。class A{public: virtual void func(int val = 1) { std::cout"<<val <<std::endl;} virtual void test() { func();}};class B : public A{public: void func(int val=0){原创 2016-10-24 21:51:58 · 643 阅读 · 0 评论 -
opencv中的FileStorage类使用注意事项
FileStorage类是OpenCV中用来进行文件操作的封装类,可以对XML,YAML,txt甚至doc文件进行读写操作。在使用opencv时经常需要对特征数据等进行保存,这时候通常会选择XML文件或者YAML文件。xml和yaml都是属于标记语言,开发者可以根据自身需要定义标签。同时他们也是一种语义/结构化语言,他们可以描述文档的结构和语义。FileStorage类可以对C++的基础数据类型(转载 2016-10-13 21:50:08 · 5420 阅读 · 2 评论 -
C++ 指针数组与数组指针
在64位系统下,分别定义如下两个变量:char *p[10]; char(*p1)[10];请问,sizeof(p)和sizeof (p1)分别值为__。重点理解p跟谁结合了,跟[]结合,则p就是一个数组;跟*结合,p就是一个指针; 首先的优先级一样,均大于* char *p[10],p与[]结合,所以p就是一个数组,数组的元素比较特殊,是指针,指针大小为8,所以是10*8=80; char原创 2016-11-08 21:22:16 · 460 阅读 · 0 评论 -
【2017年360机试题】偶串
1题意定义个字符串S是偶串当且仅当S中的每一种字符都出现了偶数次。例如S=‘‘abbacc′′就是一个偶串,因为abc三种字符都出现了偶数次。题目为输入一个字符串,问S有多少个子串是偶串。对于任意的,我们使用符号[L,R]表示子串。例如输入的字符串S=‘‘aabbaa′′,它有[1,2],[3,4],[5,6],[1,4],[2,5],[3,6],[1,6]这7个子串是偶串。2解法原创 2017-03-30 10:13:32 · 1093 阅读 · 0 评论