现在的位置: 首页 > 综合 > 正文

(回帖)高手对我提问相当有针对性的回帖

2018年05月18日 ⁄ 综合 ⁄ 共 2829字 ⁄ 字号 评论关闭

①像什么C++代码里面怎么又那么多的大写啊?我用java习惯了一点都不适应这个,
难道不能小写么?
=======================================
c++和java一样是区分大小写的语言, 一个标识符不论大写、小写还是大小写混合,都不影响编译。
但有一些约定俗成的东西,例如宏通常是全部大写的。这些东西尽量遵守,增加别人(这个别人可能是半年后的你自己)阅读你代码的难度。
简单来说,大小写的写法对程序执行没有影响,对阅读代码的人有影响。初学语言不用过分纠结,用熟了在改正习惯

②而且C++项目的结构我感觉很复杂,又是头文件什么的
动不动在网上下载别人的VC++项目导到里面就是很多文件
我都不知道哪些才是手写出来的,而哪些代码是自动生成的。。
=======================================
要知道那些代码是自动生成的,你得了解对方使用的框架。
最常见的框架是win32和mfc,你使用向导建一个工程,再把自动生成的代码看懂,就差不多。
当然开始看可能有很多看不懂的地方,慢慢来。

③而且还有一些什么.obj格式的文件,都是干什么的啊?
========================================
obj是cpp文件编译后的东西。obj连接后生成lib、dll、exe。
一般别人共享的代码或发布的软件不会带这些东西,要么是源码,要么是库(lib、dll、exe)

④mfc什么的,vc++里面新建一个win32应用程序它会自动把mfc包含在里面么,而且
里面要用mfc怎么办啊?
===================================
不会。
没这样用过,但是肯定可以这样用的。

⑤像“::”是干什么的啊,我一看这就晕,我知道C#里面“:”即可表示实现接口又
可表示继承类,到还容易理解!我觉得java里面做的比较好,实现就用“implements”,继承就用“extends”,多直观啊!希望各位C++的狂热fans不要喷我~~
我也很希望能进入C++开发的行列,我也想玩windows api,我只是什么都不懂而已,
无知望见谅~~
===========================================
假设是a::b的形式,表示b是a命名空间或a类里的东西(变量、函数...)
如果是::b的形式, 标明调用全局函数/变量b

 
⑥我知道C++ 也是面向对象的语言,mfc好像就是类似java类库的东西吧,封装了
windows 底层的 api,我想知道怎么用mfc中现成的类啊,我知道java里面是直接
“import java.io.InputStream;”来实现的,这样的话代码里面就可以直接用
InputStream这个类了,不过在C ++ 里面,又是 “#include "stdio.h"”,又是
“import <windows.h>”什么的,我都不知道是怎么回事~
====================================
mfc的大部分代码不公开. 想了解怎么封装的, 推荐看wtl的源码.
wtl是模板库, 因此头文件里包含了所有源码

7.我对socket网络编程很感兴趣,我知道java里面的socket完成基本的TCP 通讯是这
样的ServerSocket ss = new ServerSocket(10000)。。。。。Socket s = new Socket
("127.0.0.1", 10000);InputStream is = s.getInputStream()。。。DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());........
献丑了,我知道的也就比这个多那么一点点 ,我想知道在C、C++里面是怎么实现的啊?特别是在C 里面,还不提供类的支持!我还想知道C++里面启动线程是怎么搞的啊,以及还有连接数据库什么的,都说java在web应用上面很强大,难道C++就不行么?还有,C++有JDBC、JPA类似的标准么?
=====================================
这个问题范围比较大.
c/c++访问网络需要掉系统API, 步骤比较繁琐. 一般会选择自己封装一下再用. MFC有这样的类, 用得少不熟.
启动线程CreateThread/_beginthread
数据库不熟

 
8.我想知道C和C++到底有哪些区别啊
在我的认识里,C++提供了类class的关键字,但是C里面却没有
我觉得C和C++出了这些之外,当然还有一些类似于java的序列化接口
Seriablizable 什么的与面向对象体系紧紧关联的关键字除外,
我觉得在一个方法的范畴里面,c++代码不久和C的代码差不多么
===================================
c++是c的超集, c的语法都可以用(事实上很多人在用c写c++代码). 到底是不是“真正的”c++代码看代码的设计有没有用面向对象思想了

9.最后,我想问下在C++里面自己定制特定的数据结构如链表、栈什么的频繁么?
我只知道在java里面根本就不用考虑这些东西,Arraylist、hashMap、LinkedList
、Vector这些什么的直接拿来耍就可以了,搞的我学了数据结构跟
没学一样,没一点用处,到现在我都忘差不多了...
===================================
c++里有stl, list、 vector、 hash_map这些模板类都有。

 

 

---------------------------------------------------------------------------------------------------------------

 

 

引用 13 楼 yang3wei 的回复:

引用 6 楼 matrixcl 的回复:
wtl模板库是什么啊?还有能给个启动线程的源码么?谢谢兄台了

wtl全称Windows Template Library,是微软搞的一套窗口库,用法跟MFC类似,但精简很多。你搜一下吧,很容易下到。包很小,不到一兆。

启动线程的例子

C/C++ code
#include <windows.h> #include <iostream> using namespace std; DWORD WINAPI MyThread(LPVOID pv) { for (int i=0; i<20; i++) { printf("MyThread loop %d/n", i); Sleep(100); } return 0; } int main() { HANDLE hThread = CreateThread(NULL, 0, MyThread, NULL, 0, NULL); WaitForSingleObject(hThread, INFINITE); return 0; }

抱歉!评论已关闭.