C++
sysylar
这个作者很懒,什么都没留下…
展开
-
两分钟温习一下C++中三个简单的小概念:重载、重定义、重写
三个很简单的概念,两分钟温习一下~1、重载首先说重载,它最简单,C++中的重载和java中的差不多,都是在一个类中,方法名相同而参数不同的几个方法,但是不能靠返回类型来判断。例如:class AA{public: void print() { cout << "父类" << endl; } void prin...转载 2018-08-07 11:00:21 · 327 阅读 · 0 评论 -
32位和64位下结构体内存对齐问题
1.先看64位下:#includestruct A{ int a; char b; double c; char d;};struct B{ char a; double b; char c;};int main(){ printf("int =%lu,char=%lu,double=%lu\n"转载 2017-08-08 23:55:47 · 859 阅读 · 0 评论 -
指针是用来指向地址的
最近写代码过程中,声明结构体指针后,接着就往结构体里的成员变量指针里赋字符串,导致程序运行时中断报错。#include "stdafx.h"#include "iostream"using namespace std;struct CeShi{ char *a;};void display(char *str){ CeShi *info = NULL; info->a原创 2017-06-09 14:49:45 · 820 阅读 · 0 评论 -
C++中数字与字符串之间的转换
1、字符串数字之间的转换(1)string --> char * string str("OK"); char * p = str.c_str();(2)char * -->string char *p = "OK"; string str(p);(3)char * -->CString char *p ="OK"; CSt转载 2017-06-01 20:50:20 · 180 阅读 · 0 评论 -
关于typeid
越来越懒了,直接上链接了。转载 2017-03-07 17:28:45 · 229 阅读 · 0 评论 -
运行时缺msvcp100d.dll和msvcr100d.dll
111111 和22222转载 2017-03-10 15:52:59 · 20101 阅读 · 0 评论 -
ToolsVersion="14.0",,这个报错。
报这个错误,改个文件就ok转载 2017-03-10 10:38:23 · 10594 阅读 · 0 评论 -
回忆一下const相关内容
原链在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考。 const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助。作者是菜鸟一枚,难免出错,还望各位大牛不吝赐教。 首先,来看看const的基本含义。在 C/C++ 语言中,const关键字是一种修饰符。所谓“修饰符”,就是在编译器进行转载 2017-03-19 23:39:01 · 336 阅读 · 0 评论 -
关于初始化列表的问题
关于初始化列表的问题转载 2017-03-08 11:33:50 · 629 阅读 · 0 评论 -
尾递归
作者:Coke链接:https://www.zhihu.com/question/20761771/answer/92233964来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现有答案理解起来都好复杂,我答个简单易懂的。尾递归就是操作的最后一步是调用自身的递归。这是尾递归:function f(x) { if (x ===转载 2017-08-03 22:23:58 · 276 阅读 · 0 评论 -
typedef用法小结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针转载 2017-11-11 17:13:14 · 218 阅读 · 0 评论 -
关于(void**)&的理解
转来的,照例,祭出原地址~因为函数参数是按值传递的,所以要想改变变量,必须传递地址。二级指针实际上就是指针变量的地址,如果传递二级指针,函数声明必须写**。(void**)&必须是本质上就是指针变量的地址才可以做这样的转换,并不是说把一个一级指针也可以转换,void**的本质是标识一个二级指针。&data就是(默认数据类型 **)&data,(v转载 2017-10-20 23:17:20 · 31959 阅读 · 0 评论 -
MFC对话框Border类型(None、Thin、Resizing、Dialog Frame)对应的部分属性
在运行中转换对话框类型需要用到的属性Dialog FrameWS_CAPTION | WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAMEWS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGEThin比Dialog Frame缺少一个扩展属性WS_EX_DLGMODALFRAMENone比D...转载 2018-07-20 14:48:39 · 1831 阅读 · 0 评论 -
OpenCV中使用halcon中Region的概念
之前一直使用Halcon12作为开发的软件,确实在机器视觉工业化开发上速度飞快,不过有许多算法还是不得不自己写,所以还是要用到openCV。一开始转openCV最不适应的就是Region这个部分,Halcon中Region对象的使用非常简便,而还在入门的我一直不知道如何处理Halcon算法移植到openCV过程中Region的处理,最近稍微一些眉目,稍作分享,或者如果openCV有什么更直接的方法...转载 2018-07-06 14:28:58 · 1883 阅读 · 0 评论 -
VS2012 ToolsVersion="12.0" 设置,但此工具集未知或缺失
VS2012 打开 VS2013创建的工程,会报错误:项目文件包含 ToolsVersion="12.0" 设置,但此工具集未知或缺失。您可以通过为此工具集安装相应的 .NET Framework 来解决此问题。将项目视为具有 ToolsVersion="4.0" 设置。projectfile contains ToolsVersion="12.0" this toolset is unknown...转载 2018-06-02 10:06:21 · 3584 阅读 · 1 评论 -
vs2012项目加载失败
解决办法在这里~转载 2018-05-30 13:15:55 · 467 阅读 · 0 评论 -
C++调用Python处理vector
前言C++和Python都是当前最流行的语言之一,其强大的功能毋庸置疑,它们分别在不同甚至相同的领域发挥着至关重要的作用。C++是底层开发中起着中流砥柱的作用,屹立多年依然势头强劲不露颓势。而Python在最近大热的数据挖掘和人工智能领域独领风骚。而且Python为数极其众多的库支持几乎可以满足各个领域的开发者的需求。虽然他们都是非常强大的工具,但是在处理特定任务的时候,有时候会存在着方便与否的问...转载 2018-05-08 17:25:56 · 1818 阅读 · 3 评论 -
C++调用python代码
【需求】:使用c++调用python中sklearn包的SVM,训练+识别。【需要解决的问题】:相关的环境配置,c++与python数据类型的互转。原创 2018-05-14 14:24:26 · 2454 阅读 · 0 评论 -
成员函数在类外定义的时候,函数名为啥不能加static
今天清理手机微信没用的数据【惊人啊,删了1G+的图,再删删其它没用的数据,腾出来3G+的空间】无意间发现了一张以前聊天时候的图。回忆了一下,当时讨论的是:为啥成员函数在类外定义时,函数名不能加static? class Point { public: void init() { } static void o...原创 2018-01-12 20:52:18 · 9585 阅读 · 3 评论 -
关于C++的那4个强制类型转换符
科普const_cast 去掉类型的const或volatile属性。static_cast 类似于C风格的强制转换。无条件转换,静态类型转换。用于: 1. 基类和子类之间转换:其中子类指针转换成父类指针是安全的;但父类指针转换成子类指针是不安全的。(基类和子类之间的动态类型转换建议用dynamic_cast) 2. 基本数据类型转换。enum, str转载 2017-10-19 17:23:28 · 281 阅读 · 0 评论 -
模板 & 容器(扫盲)
函数模板:基本的函数模板语法:templatevoid foo(T param){ //do something}下面是小甲鱼视频中的例子:#include #include template void swap(T &a, T &b){ T tmp = a; a = b; b = tmp;}int main(){原创 2016-12-14 15:28:49 · 434 阅读 · 0 评论 -
halcon与opencv图片的数据结构转换
IplImage* ImageProcess::HImageToIplImage(Hobject &Hobj){ IplImage* pImage; HTuple htChannels; char cType[MAX_STRING]; Hlong width,height; width=height=0; //转换图像格式转载 2016-11-27 00:47:05 · 1477 阅读 · 0 评论 -
const 修饰变量赋值的时刻
const初始化能赋值,初始化完事儿,就不能赋值了,我居然才搞清这个问题、、、#include #includestd::vector array(50);const int value = 50;int main(){ array[10] = value; const std::vector::iterator result= find(array.begin(),原创 2016-12-08 09:41:02 · 903 阅读 · 0 评论 -
C++虚函数
因为不会经常用到,看完教程总忘。现在在这儿记录下来,以后看一下这里,就回忆起来,比较方便。上代码:#include #include class Pet{public: Pet(std::string theName); void play();protected: std::string name;};class Cat : public P原创 2016-11-22 17:12:54 · 254 阅读 · 0 评论 -
头文件、预处理命令、命名空间(作用域)、链接
关于与include搭配的符号(双引号 & 尖括号): C++有一些编写好的头文件(比如标准函数库等等),它们存放在VC++的Include文件夹里。当我们使用#include 命令时,编译器就到这个文件夹里去找对应的文件。用这种写法去包含一个我们自己编写的头文件(不在那个Include文件夹里)就会出错了。所以包含C++提供的头文件时,应该使用尖括号。 #include "文件名"命原创 2016-11-28 18:24:38 · 1561 阅读 · 0 评论 -
返回引用的函数
这代码有意思~#include #include using namespace std; double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0}; double& setValues( int i ){ return vals[i]; // 返回第 i 个元素的引用} // 要调用上面定义函数的主函数in原创 2016-10-07 17:29:29 · 594 阅读 · 0 评论 -
【笔记】160928 找质数/break/continue/goto
找质数:break:continue:goto:原创 2016-09-28 14:34:51 · 333 阅读 · 0 评论 -
【笔记】160927 块/类型范围/枚举类型/变量初始化/extern
块:类型范围:枚举类型:变量初始化:原创 2016-09-27 11:14:39 · 553 阅读 · 0 评论 -
无限循环 while(1) 和 for(; ;) 有何区别?哪个更好?
无限循环有两种常用的方法:while(1) 和 for(; ; ) 。两种方法的效果一样,相比之下,哪种更好些?编译后代码对比:1、while( 1 );00401028 mov eax,10040102D test eax,eax0040102F je main+23h (00401033)00401031 jmp main+18h (00401028)2、for( ;转载 2016-09-28 00:25:52 · 1525 阅读 · 0 评论 -
C的三个实用的库函数
报时:计时1:计时2:原创 2016-10-10 14:16:46 · 306 阅读 · 0 评论 -
常量指针、指针常量
常量指针、指针常量这俩词中,右面的是主语,左面的是定语。嗯,记住这个,就能分清了、常量指针:指针是主语,这就是个指针,用常量修饰,说明这是一个指向常量的指针,指针的指向可以变,但指向的数据不能变。【const int *p; 或 int const *p; 】指针常量:常量是主语,这就是个常量,用指针修饰,说明这是一个指向变量且指原创 2016-10-06 13:51:20 · 232 阅读 · 0 评论 -
从函数返回数组需要注意的细节
需要注意的地方已经用红框标出、原创 2016-10-10 14:00:16 · 302 阅读 · 0 评论 -
函数指针、指针函数、数组指针、指针数组
函数指针、指针函数、数组指针、指针数组这些词中,右面的是主语,左面的是定语。嗯,记住这个,就能分清这几个概念了、函数指针:指针是主语,这就是个指针,用函数修饰,说明这是一个指向函数的指针。【int *f( x , y ); 】指针函数:函数是主语,这就是个函数,用指针修饰,说明这是一个返回值为指针的函数。【int (*func) ( x , y ); f原创 2016-09-27 11:05:19 · 304 阅读 · 0 评论 -
从函数或方法返回一个内存地址
#include int *newInt(int value);int main(){ int *x = newInt(20); std::cout << *x; delete x; x = NULL; return 0;}int *newInt(int value){ int *myInt = new int;原创 2016-11-24 10:46:57 · 2393 阅读 · 0 评论 -
函数声明时,名后面的const的意思
通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误#include "stdafx.h"#include using namespace std;class aa{ int num;public: aa(){ int b =10;转载 2016-12-08 11:38:16 · 346 阅读 · 0 评论 -
函数模板声明时也不能少了固定格式
上代码:#include #includetemplatevoid printf (T const&);int main(){ printf("日你妹,好用了!"); system("pause"); return 0;}templatevoid printf (T const& content){ std::cout<< content << st原创 2016-12-08 11:04:25 · 564 阅读 · 0 评论 -
高级强制类型转换
这里用的是第二个Company *company = new Company("APPLE","Iphone");TechCompany *tecCompany = dynamic_cast(company);原创 2016-11-25 10:11:11 · 335 阅读 · 0 评论 -
函数形参为指针时,往里传常量
#include #include void abc(int *p){ std::cout<<*p<<std::endl; delete p;}int main(){ abc(new int(5)); system("pause"); return 0;}大概就是这么个做法,用int类开一块堆内存,传入函数。函数里用完了,再把那部分内存及时回收一下~原创 2016-11-24 19:37:04 · 1118 阅读 · 0 评论 -
全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别以及栈与堆的区别
全集变量、局部变量、静态全局变量、静态局部变量在内存中如何存储,有什么区别,栈和堆的区别,这都是C/C++的基础问题。在各种招聘笔试面试中,经常都能够遇到与之相关的问题。前些日子我看了一些与之相关的文章,现在总结一下存放于此。先分析一下四种变量的区别: 一、先由程序的内存分配说起,一个完整的C/C++程序在运行时会占用的内存分为几个部分。栈(stack):由编译器自转载 2016-11-24 15:10:25 · 3491 阅读 · 0 评论 -
动态内存管理/动态数组
#include #include class Company{public: Company(std::string theName);//① virtual void printInfo();protected: std::string name;};class TechCompany : public Comp原创 2016-11-22 18:22:43 · 403 阅读 · 0 评论