VC++ 学习笔记(六):简单C++
到现在,我觉得终于找到学习和使用C++的基本原则了——务必简单。将其看成一个带类的C,或者将其看做标准库下的C++。
C++太复杂——其实这种复杂性,所有语言都有,只是多数语言都隐藏了这种复杂性,只有你去努力找,才能找到操作复杂性的方法。而C++,试图将所有复杂性展现在所有人面前,包括初学者。有人比喻,如果语言是一件工具,一般语言就是刀子、叉子啥的,而C++就是一把瑞士军刀。

(图片来自https://gameinstitute.qq.com/community/detail/104649)
MFC啥的都应该被扔进垃圾桶,它几乎将C++的复杂推向极致。几乎没有人不吐槽MFC,而且也没有几个人真正使用MFC,即使在微软内部也是这样。哪些设计MFC的大牛们,肯定反省过很多次了,很多年了。
模板和泛型是C++的高级功能,也挺复杂的。对比C#的泛型,C++更自由,但是不能做语法检查。。。有点像宏定义,或者就是大牛们当时从宏定义得到的灵感。泛型是个好东西,相对于非泛型,不会牺牲性能。但是对于初学者,窃以为不要尝试自己去写模板,能够理解,使用STL中的泛型结构就可以了。
跨平台是个很有吸引力的概念,但是对于C++来说,即使是只使用标准库,Windows下能跑的C++代码,在Linux上也不一定能跑,还是要一堆条件编译来处理平台差异。在这个方面,C语言本身貌似有更好的表现,以至于连Linux之父都不喜欢C++。
自己处理内存是个劳神费心的事,编写业务逻辑的时候,还要处处防范内存问题,不留意就会出现一个大坑。
图像处理、游戏引擎貌似是C++的主场,暂时还没有什么可以替代的,这算不算好消息?
无论如何,该骂骂,C++该用还得用,只是,要务必简单,尽量不要使用复杂的技术,更不要自己增加复杂性。。。
VC++ 学习笔记(六):简单C++的更多相关文章
- Netty学习笔记(六) 简单的聊天室功能之WebSocket客户端开发实例
在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. 创建客户端 接着第五个笔记 ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- VC学习笔记:对话框
VC学习笔记:对话框 SkySeraph NOV.11st 2009 HQU Email-zgzhaobo@gmail.com QQ-452728574 Latest Modified Date:O ...
- 【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- openresty 学习笔记六:使用session库
openresty 学习笔记六:使用session库 lua-resty-session 是一个面向 OpenResty 的安全和灵活的 session 库,它实现了 Secure Cookie Pr ...
- 孙鑫VC学习笔记:多线程编程
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- VC++ 学习笔记(序):神一样的语言
总的来说,我觉得VC++是一门神一样的语言——它是公认最强大.最复杂的:它一切以效率为第一要务,却又不肯落伍,拼命兼容现在的新的语言设计特点.本来在别的语言很容与就避开的问题,在这里要用很高的技巧去设 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
随机推荐
- 用于Python扩展包的非官方Windows二进制文件
https://www.lfd.uci.edu/~gohlke/pythonlibs/ Index by date: peewee aiohttp indexed_gzip pygit2 pymatg ...
- Beta产品测试报告:那周余嘉熊掌将得队、为了交项目干杯队
测试对象: 那周余嘉熊掌将得队 一.截图 安装截图 运行截图 二.测试情况 1.第一次上手体验感觉如何?能否正常运行? 界面UI设计令人眼前一亮,客户端和管理员端皆可正常运行.组件动画流畅,响应流畅, ...
- 分析脚本搭建docker环境:python, R
1. 搭建Anaconda Python3.6 FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04 MAINTAINER Tyan <tyan.liu.g ...
- Windows Automation API和自动化测试
https://zhuanlan.zhihu.com/p/22083601\ 感谢轮子哥点赞,这会儿消息扎堆过来了,轮带逛果然不是随便说说的…… 第二篇一个简单的Windows Automation ...
- Dart编译技术与平台
Flexible compiler technology lets you run Dart code in different ways, depending on your target plat ...
- React Tutorial: Basic Concept Of React Component---babel, a translator
Getting started with react.js: basic concept of React component 1 What is React.js React, or React.j ...
- HTTP权威指南 目录
diyi部分 HTTP:Web的基础 第1章 HTTP概述 31.1 HTTP——因特网的多媒体信使 41.2 Web客户端和服务器 41.3 资源 51.3.1 媒体类型 61.3.2 URI 71 ...
- 学习:STL_deque容器
deque容器: 功能:双端数组,可以对头端进行插入删除操作 deque与vector区别: 1.vector对于头部的插入删除效率低,数据量越大,效率越低 2.deque相对而言,对头部的插入删除速 ...
- leetcode 合并重叠区间变异 合并多个时间段 取并集
public class Solution { public static ArrayList<Interval> merge(ArrayList<Interval> inte ...
- ESA2GJK1DH1K微信小程序篇: 安装Nginx,配置反向代理
前言 一,为什么需要反向代理 小程序访问的是 443端口,咱需要把443端口的数据传给MQTT 这节为了避免大家配置出错,以下源码已经配置. 如果大家想自己配置,请参考 https://www.cnb ...