知乎上有个问题:物理专业自学计算机应该学些什么? 题目大概是说他物理本科大四了,申请去美国读物理博士,但自己对计算机有很大兴趣,为了考虑以后的饭碗,想自学计算机。自己对计算机图形学有兴趣,希望得到一些建议。 回答的人不少,有几个人的回答震撼到我了。 第一个回答: 作者:陈然 链接:https://www.zhihu.com/question/23212279/answer/24061341 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 个人站的角度不同,现在的答案基本都是从图形学的角度建议,我换个角度。 从研究生计算机科学做研究的角度来讲,我认为本科最适合的专业首先是物理,其次是数学,再次才是计算机。数学学的太抽象,抽象层次太高,研究现实问题的人往往处在鄙视链的底端。计算机学的太底层,对于概率论、随机过程、线性代数等学科学的太少,不了解建模分析的那套方法论。而物理学一方面的数学知识足够多,另外一方面主要研究的方法也是对这个世界建模,然后进行观测,这与前沿的机器学习领域做的事情几乎是一样的。至于会不会写代码,其实科研里面要写的代码不多,主要都是在推公式,研究如何设计模型使得其拥有很多良好的性质。代码很多时候写写matlab就可以了。 所以恭喜你,如果你想转行做CS的科研,你有很大的优势。事实上,很多CS领域的大神都是学物理的,比如华人图灵奖得主姚期智,CMU Machine阅读全文

假设我们的程序是MFC32位程序,名字为Menu。 现在我们有了一项子菜单,名字叫“Test”,它下面有菜单项“Hello”,该菜单项的ID是“111”。 目的,使得该Hello菜单项有消息相应。实例:点击Hello后消息框弹出,并显示消息“Hello World.” 需要在以下三个文件内添加代码: 1.打开FileView下的Heaner Files中的Resource.h文件,添加代码定义宏 [cc lang=”c++”] #define IDM_HELLO                             111 [/cc] 2.打开FileView下的Heaner Files中的MainFrm.h文件,在DECLARE_MESSAGE_MAP()之上添加代码 [cc lang=”c++”] afx_msg void OnHello();  //afx程序是调用系统级别的信息,添加保护性成员函数 [/cc] 3.打开FileView下的Heaner Files中的MainFrm.cpp文件,在消息映射表(BEGIN_MESSAGE_MAP和END_MESSAGE_MAP中间)中添加 [cc lang=”c++”] ON_COMMAND(IDM_HELLO,OnHello) [/cc] 后面没有分号。阅读全文

相对来说,C语言是一种简洁的语言,所涉及的概念和元素比较少,主要是:宏(macro)、指针(pointer)、结构(struct)、函数(function)和数组(array),比较容易掌握和理解。而C++不仅包含了上面所提到的元素,还提供了私有成员(private members)、公有成员(public members)、函数重载(function overloading)、缺省参数(default parameters)、构造函数、析构函数、对象的引用(references)、操作符重载(operator overloading)、友元(friends)、模板(templates)、异常处理(exceptions)等诸多的要素,给程序员提供了更大的设计空间,同时也增加了软件设计的难度。 C语言之所以能被广泛的应用,其高效率是一个不可忽略的原因,C语言的效率能达到汇编语言的80%以上,对于一种高级语言来说,C语言的高效率就不言而喻了。那么,C++相对于C来说,其效率如何呢?实际上,C++的设计者stroustrup要求C++效率必须至少维持在与C相差5%以内,所以,经过精心设计和实现的C++同样有很高的效率,但并非所有C++程序具有当然的高效率,由于C++的特殊性,一些不好的设计和实现习惯依然会对系统的效率造成较大的影响。同时,也由于有一部分程序员对C++的一些底层实现机制不够阅读全文

 阅读全文

[cc lang=”c++”] /*************************************************************** 作用:测试派生类的构造函数和析构函数,以及二义性问题的处理方法 作者:TAHO 时间:2012年10月28日 ****************************************************************/ #include class base //基类 { private: int i; public: base(int n) { cout阅读全文

成员函数: 就是一个类(class)里面所定义的函数 例如 class A { public:    void B(); private:    int C(); protected:    bool D(int i); }; 那么,B(),C(),D(int)都是A的成员函数 对_BLOCK_TYPE_IS_VALID错误的处理 这是由于在使用析构函数时,多余地去释放已经被释放过内存了的变量导致重复释放后出现的错误。 const使用方法:(怎么使用const,const怎么用)[难点]  看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。 1.用const 修饰函数的参数 如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数: 如果输入参数采用“指针传递”,那么加阅读全文