首页 > 编程语言 >(P01)C++介绍

(P01)C++介绍

时间:2023-03-08 20:32:26浏览次数:35  
标签:sub int 编程 语义 add 介绍 P01 C++


文章目录

  • ​​1.需要掌握的重要练习​​
  • ​​2.为什么要学习C++​​
  • ​​3.C++为什么难学​​
  • ​​4.C++ 11值得学习的新特性​​
  • ​​5.几本推荐学习C++的书​​
  • ​​6.开发工具选择​​
  • ​​7.eg​​

1.需要掌握的重要练习

  • 大整数类
  • 字符串类:掌握运算符重载,内存管理与拷贝
  • vector实现:熟悉模板编程
  • 面向对象版的表达式计算器
  • 面向泛型版的表达式计算器:可以扩充为编译器
  • 俄罗斯方块的实现

2.为什么要学习C++

  • C++能提升性能。提升性能意味着钱。C++之父Bjarne Stroustrup戏称C++可以减轻全球变暖问题
  • 编程语言的需求总结为四个:效率(efficiency),灵活(flexibility),抽象(abstraction),生产力(productivity)。
    C语言注重前两者,C++注重前三者,JAVA、.net这些注重后两者。

3.C++为什么难学

  • C++支持的编程范式(paradigm)
    (1)过程式(procedual):顺序,选择,循环
    (2)数据抽象(data abstraction):值语义,ADT,封装
    (3)基于对象(object-based):对象语义, 利用function/bind的代替面向对象(以对象语义为主)
    (4)面向对象式(object-oriented):对象语义,封装,继承,多态(与值语义为主)
    (5)函数式(functional):LISP,Erlang,用递归代替for,C++11的lambda表达式和闭包支持函数式编程
    (6)泛型形式:
    与面向对象的区别:
    面向对象程序=对象+对象+消息传递(外部对象不能施加在内部对象)
    面向泛型程序=对象+对象+抽象行为(能施加在不同类型而又大相径庭的对象之上)
    (7)模板元形式:基于模板的编程范式,是泛型编程的升华。
    模板元编程是给出代码的产生规则,编译器在编译期解释这些规则并生成新代码来实现我们预期的功能。
    模板元编程由于把运算由执行时提前到了编译时,所以其一个特点是运行时很快,效率很高!不过这是以编译耗时为代价的。另一方面是可以用来做那种神奇的类型推导
  • 值语义与对象语义
    值语义可以拷贝与赋值、对象语义不可进行拷贝与赋值

4.C++ 11值得学习的新特性

  • 智能指针如shared_ptr、weak_ptr等
  • rvalue reference;右值引用
  • function/bind;摆脱面向对象的束缚
  • lambda expression and closure(闭包).函数式编程

5.几本推荐学习C++的书

  • C++ primer 第四版(第五版中文版即将出来,会加入C++ 11的新特性)
  • Effective C++ 3rd
  • C++编码规范
  • 敏捷软件开发——原则、模式与实践
  • 代码大全,第二版

6.开发工具选择

  • 目前最主流的编译有两个GNU g++与和微软Visual C++
    windows和linux都能运行!
  • windows使用的是vs2010进程开发调试,Linux使用ubuntu进行开发调式

7.eg

  • (1)在windows下
=========================================================================
add.h
#ifndef _ADD_H_
#define _ADD_H_

int add(int a, int b);

#endif // _ADD_H_

=========================================================================
sub.h
#ifndef _SUB_H_
#define _SUB_H_

int sub(int a, int b);

#endif // _SUB_H_
=========================================================================
add.c
#include "add.h"

int add(int a, int b)
{
return a + b;
}

=========================================================================
main.c
'#include "add.h"
#include "sub.h"
#include <iostream> // for cout
using namespace std; // 引入命名空间

int main(void)
{
int a = 10;
int b =3;
cout<<"hello world!"<<endl;
cout<<"a+b="<<add(a, b)<<endl;
cout<<"a-b="<<sub(a, b)<<endl;
return 0;
}
=========================================================================
sub.cpp
#include "sub.h"

int sub(int a, int b)
{
return a - b;
}
  • (2)在Linux下
=========================================================================
Makefile
.PHONY:clean
CC=g++
CPPFLAGS=-Wall -g
BIN=main
OBJS=main.o add.o sub.o

$(BIN):$(OBJS)
$(CC) $(CPPFLAGS) $^ -o $@

#将所有.cpp文件生成为.o文件#
%.o:%.cpp
$(CC) $(CPPFLAGS) -c $< -o $@
clean:
rm -f *.o $(BIN)
=========================================================================


标签:sub,int,编程,语义,add,介绍,P01,C++
From: https://blog.51cto.com/u_12740336/6108862

相关文章