随笔分类 - C++
« 给初学C++者的50条忠告
摘要:1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学 者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;6.会用Visual C++,并不说明你会C++;7.学class并不难,template、STL、g
阅读全文
C++/CLI学习入门数组
摘要:要学习数组,必须先了解跟踪句柄。一、跟踪句柄跟踪句柄类似于本地C++指针,但也有很大区别。跟踪句柄确实存储着某个对象的地址,但当CLR压缩堆过程中改变了该对象的地址,则垃圾回收器自动更新句柄所包含的地址。我们不能像本地指针那样用跟踪句柄来执行地址的算术运算,也不允许对跟踪句柄进行强制类型转换。 在CLR堆中创建的对象必须被跟踪句柄引用。所有属于引用类型的对象都存储在堆中,因此为引用这些对象所创建的变量都必须是跟踪句柄。例如,String类型是引用类型,因此引用String对象的变量必须是跟踪句柄。值类型默认分配在堆栈上,但也可以用gcnew操作符将其存储在堆上。此外必须注意,在堆上分配的变量—
阅读全文
System::String^ / std::string / char * 间的转换(部分)
摘要:System::String^ to std::string void MarshalString ( System::String^ s, std::string& os ) { using namespace System::Runtime::InteropServices; const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer(); os = chars; Marshal::FreeHGloba...
阅读全文
[摘]C/C++实现js的split函数功能
摘要:今天在网上找了一下,发觉有比较多的方法,现在列出来,需要的朋友可以参考一下。功能最丰富的就是第一种方法了:1 vector<string> Split(const string& s,const string& match,bool removeEmpty=false,bool fullMatch=false) 2 //参数s为需要肢解的字符串 3 //参数match为肢解匹配字符串 4 //参数removeEmpty为是否删除空字符 5 //参数fullMatch为是否只保留全匹配的字符串 6 7 下面为代码区: 8 #include <string>
阅读全文
char*与System::String^的相互转换
摘要:#include "stdafx.h" using namespace System; //这个命名空间如果缺的话,IntPtr这个无法识别int main(array<System::String ^> ^args) { char* ch1 = "this is chars "; //将char*转换为System::String^ String^ str1= System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ch1); //System::String^转
阅读全文
浙公网安备 33010602011771号