C++绪论

作者: 帅碧 | 来源:发表于2016-11-07 21:04 被阅读0次

课程目标

  • 掌握c++基础知识
  • 理解面向对象的编程理念
  • 掌握一定的调试技术
  • 掌握常用的c++类库
  • 具有一定的项目实践能力

c++的优势//数据与算法的耦合

  1. C++被看成一种"更好的C",或者是"C的超集"
  2. C语言中很多麻烦的地方,含糊不清的地方在设计C++时得到了解决
  3. C++包含所有C的特性
  4. 支持OOP面向对象编程

面向对象程序设计概念

  1. 出发点:
  • 更直接的描述客观世界中存在的事物(对象)以及它们之间的关系.
  1. 特点
  • 是高级语言
  • 将客观事物看作具有属性和行为的对象
  • 通过抽象找出同一类对象的共同属性和行为,形成类
  • 通过类的继承与多态实现代码重用
  1. 优点
  • 使程序能够比较直接地反应问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发

最简单的程序(hello world)

#include<iostream.h>
int main(int argv,char **argv)
{
    std::cout<<"Hello! World"<<std::endl;
    return 0;
}

//std::是命名空间

  • C语言的hello world
#include<stdio.h>
int main()
{
    printf("Hello world\n");
}

//将int改为void则会出错
  • C++中的hello world
#include<stdio.h>
#include<iostream>
int main()
{
//  printf("Hello world\n");
    std::cout<<"Hello world\n";
}

//结果为:Hello world

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int a=69;
    cout<<"Hello world"<<a<<endl;
}

//结果为Hello world69;

#include<stdio.h>
#include<iostream>
int main()
{
    int a=69;
    std::cout<<"Hello world"<<a<<std::endl;
}

//结果为:Hello world69;

#include<stdio.h>
#include<iostream>
char a=71;
int main()
{
    printf("Hello world%d\n",a);//结果为Hello world71
    cout<<"Hello world"<<(int)a<<endl;//原本结果为Hello worldG.在前面加(int)是强转型
}

#include<stdio.h>
#include<iostream>
char a[20]="jiangxiubi";
int main()
{   
    printf("Hello world%p\n",a);//a的地址
    cout<<"Hello world"<<a<<endl;//输出为Hello worldjiangxiubi

#include<stdio.h>
#include<iostream>
int a;
int main()
{
    cin>>a;
    cout<<"a = "<<a<<endl;
}
//当输入11时,则打印11;相当于C语言中的scanf
//若输入的数据不符合a的类型,则会出错.

#include<stdio.h>
#include<iostream>
char a;
char b;
int main()
{
    cin>>a>>b;
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
}
//当输入12时,结果为a = 1;
//b = 2;

#include<stdio.h>
#include<iostream>
int a;
int b;
int main()
{
    cin>>a>>b;
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
}
//当输入 1 2时,中间要有空格,则输出a = 1;
//b = 2;

与C的输入输出的比较

  1. 比printf scanf功能强大,形式简单
  2. 可以自动识别基本数据类型

命名空间

namespace Graphics
{
    const int nLibrary=1.0;
};
using Graphics;
namespace System
{
    const int nLibrary=2.0;
};
using System;

标准命名空间

#include<stdio.h>
#include<iostream>
using namespace std;//标准命名空间
namespace A
{
    int a=69;
};
namespace B
{
    int a=70;
};
int main()
{
    printf("Hello world%d\n",A::a);
    cout<<"Hello world"<<B::a<<endl;
}
//结果为:Hello world69与Hello world70;


#include<stdio.h>
#include<iostream>
using namespace std;//标准命名空间
namespace A
{
    int a=69;
};
namespace B
{
    int a=70;
};
int a=71;//全局无命名空间
int main()
{
    printf("Hello world%d\n",A::a);
    cout<<"Hello world"<<B::a<<endl;//B::a输出流的对象
    cout<<"Hello world"<<::a<<endl;
}

//结果为::Hello world69与Hello world70与Hello world71;

C++Hello World程序解释

  1. 预处理,头文件
  2. 编译
  3. 联接

C++流

标准流的设备名

C++名字  设备  c中的名字  默认的含义
cin      键盘  stdin      标准输入
cout     屏幕  stdout     标准输出
cerr     屏幕  stderr     标准错误
clog     打印机stdprn      打印机

cout<<"Welcome to";
cout<<"C++!\n";

也可用:cout<<"Welcome to";
cout<<"c++";
cout<<"endl";
//两者结果相同

  • 流插入运算符还可以输出表达式的值
cout<<"47plus53is";
cout<<"(47+53)";
cout<<endl;
也可用:cout<<"47plus53is"<<"(47+53)"<<endl;

总结

  1. C有很多优点,但也有缺点C缺点:安全与易用还有局限
  2. C++用cout<<cin>>作输入输出
  3. 命名空间是为了避免两个程序员使用相同的名字造成冲突

相关文章

  • C++绪论

    课程目标 掌握c++基础知识理解面向对象的编程理念掌握一定的调试技术掌握常用的c++类库具有一定的项目实践能力 c...

  • C++基础-(绪论)

    C++基础 课程绪论 C语言的缺点 C类型检查机制相对较弱,这使得程序中的一些错误不能在编译时发现 C本身几乎没有...

  • 2018-09-15

    Effective c++第三版 绪论 std::size_t是一个typedef,属于unsigned类型。 构...

  • 大一日记

    学习计划 对于c++/c该学习那些内容我也不是很了解,但从课本的目录大概可以归为绪论,程序的基本组成,分...

  • C++基础学习笔记(一):绪论

    写在开头 本学期即将开始进行面向对象编程——C++的学习,说实话自己还蛮紧张的,毕竟自己C语言学的就是一知半解,再...

  • 《河南传统儿歌》读书笔记(一)

    今天读了《河南传统儿歌》的绪论和第一章。 绪论 本书是以河南传统儿歌为对象,在绪论部分作者首先对儿...

  • 从《源氏物语》漫谈物哀

    目录 绪论····················································...

  • 3D数学基础

    介绍演示绪论

  • 绪论

    第一章 计算机网络概述 OSI参考模型(七层协议) 引用层所有能产生网络流量的程序- 表示层传输之前是否要进行加...

  • 绪论

    抓住那条闪电 别让它跳进井里 我的后脑勺长了樱花 还未谢去 我的睫毛是红色的 红色是一种植物的脾气 站在山顶沉默 ...

网友评论

      本文标题:C++绪论

      本文链接:https://www.haomeiwen.com/subject/mxoouttx.html