C++第一天学习

代码1

#include<iostream>

int main()
{
int a;
std::cout << "hello c++" << std::endl;
std::cin >> a;
return 0;
}

代码2

#include<iostream>
int main(void)
{
int a;
std::cin>>a;
std::cout<<a<<std::endl;
return 0;
}

代码

#include<iostream>
namespace ns
{
//int a;
namespace ns1
{
namespace ns2
{
int aa;
}
}
};
namespace ns
{
int a;
int b;
}
namespace std
{
int c;
}

using namespace ns;
using std::cout;
using std::endl;
int a;
int main(void)
{
ns::a=10;
::a=30;
std::c=20;
cout<<::a<<endl<<std::c<<endl;
return 0;
}

代码4

#include<iostream>
namespace ns
{
int a;
namespace ns1
{
namespace ns2
{
int aa;
}
}
};
namespace ns
{
int b;
//int a;//error
}
namespace std
{
int c;
}
using namespace ns;
using std::cout;
using std::endl;
int a;
int main()
{
ns::a = 10;
std::cout << ns::a << std::endl;
ns::a = 20;
cout << ns::a << endl;
::a = 30;
cout << ::a<< endl;
ns::ns1::ns2::aa = 100;
namespace NS=ns::ns1::ns2;
cout << NS::aa << endl;
return 0;
}

代码5

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

struct student
{
int num;
char name[20];
int age;
};

int main(void)
{
student stu;//可以省去struct
stu.num=007;
strcpy(stu.name,"chengjisihan");//可以用string类来写直接可以赋值
stu.age=21;
printf("%03d",stu.num);
cout<<endl<<stu.name<<endl<<stu.age<<endl;
return 0;
}

代码6

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

struct student
{
int num;
string name;
int age;
void show(void)//c++函数可以写在结构体中
{
cout<<num<<endl<<name<<endl<<age<<endl;
}
};

int main(void)
{
student stu;
cin>>stu.num>>stu.name>>stu.age;
stu.show();
return 0;
}

代码7

#include<iostream>
#include<cstdio>
using namespace std;

union myunion
{
int a;
char c;
};

int main()
{
myunion u;
u.a = 0x12345678;
printf("u.c = %x\n",u.c);//78
return 0;
}

#include<stdio.h>
//#include<stdbool.h>
enum color{red,green,blue};

int main()
{
// bool ok;
// ok = true;
// printf("ok = %d\n",ok);
enum color c;
c = 10;

printf("c = %d\n",c);
}

#include<iostream>
using namespace std;

int main()
{
bool ok;
ok = true;
// cout << ok << endl;
ok = 100000000000;
cout << ok << endl;//1

ok = "hello";
cout << ok << endl;//1

ok = NULL;
cout << ok << endl;//0
cout << sizeof(ok) << endl;//1
return 0;
}

#include<iostream>
using namespace std;

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

return d1+d2;
}
void add(int b)
{

cout << b << endl;
}

int main()
{
int a = 10,b = 20;
double d1 = 10.0,d2 = 20.0;
cout << add(a,b) << endl;
cout << add(d1,d2) << endl;
add(a);
return 0;
}

#include<iostream>
using namespace std;
int add(int a,int b=100);
int add(int a,int b)
{
return a+b;
}

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

int main()
{
cout << add(10) << endl;
cout << add(10,30,40) << endl;
return 0;
}

#include<iostream>
using namespace std;

int main()
{
int *p;
p = new int(100);
// *p = 10;
cout << *p << endl;
delete p;
p = NULL;
int *p1 = new int[5]{1,2,3,4,5};
for(int i= 0; i < 5; i++)
{
cout << p1[i] << endl;
}
delete []p1;
p1 = NULL;
return 0;
}

C++/QT

c++ 4天左右

qt 3周左右

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

c++

1.C++与C差异

2.封装

3.继承

4.多态

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

1.C++简介

C++

c with classes

肯 汤普逊 ken Thompson Unix之父 1943-

丹里斯  里奇  C语言之父  Unix之父 1941-2011年

本贾尼 斯特劳斯特卢普 丹麦人  C++之父 1950-

C++重要历史事件

1979- c with classes

1983- 正式定名为C++

1985- 第一款产品级的C++编译器

1987- GNU C++

1992-   MS C++ ->Visual C++

1998- ISO标准    c++98

2003- 修订 c++03

2011- ISO 对C++做了革命性的改变 c++11

2014- 扩展

C和C++共同点:

编译型语言  --  解释型语言

强类型语言

最大的不同点:

C++增加了面向对象机制

2.第一个C++程序

1.头文件

C: <stdio.h>  -> <cstdio>

C++: <iostream>

.h/.hpp

2.输入/输出方式

C: printf() scanf()

C++: cout -> console output

cin  -> console input

endl -> end line

<< 流插入运算符(输出运算符)

>> 流提取运算符(输入运算符)

3.std名字空间

std是标准C++库中所有的函数、类型、变量、对象的名字空间

4.扩展名

C: .c

C++: .cpp  .C .cc .cxx

5.编译方式

C: gcc/cc

C++: g++/c++

gcc hello.cpp -lstdc++

练习:

输入两个整数

求和

并输出

3.名字空间/命名空间 namesapace

1.为什么要用名字空间?why

用来避免名字冲突

可以用来给名字逻辑分类

2.什么是名字空间?what

本质:就是一块由程序员分配指定的内存空间

名字空间应用要有一个名字 如:std

3.怎么使用名字空间?how

1.定义名字空间

namesapace 名字空间的名字

//名字空间的成员

};

注:名字空间成员可以是变量、类型、函数、对象...

2.名字空间用法:

1.通过作用域运算符 ::

名字空间名::要访问的成员

std::cout

2.名字空间指令

using namesapace 名字空间名;

using namesapace std;

cout cin

3.名字空间声明

using 名字空间名::名字空间成员;

using std::cout;

using std::cin;

using std::endl;

3.无名名字空间

不属于任何名字空间的标识符,将被编译器放到无名名字空间中。

使用无名名字空间成员:

::标识符

4.名字空间嵌套

namesapace ns

{

namesapace ns1

{

namesapace ns2

{

int aa;

}

}

}

名字空间别名:

ns::ns1::ns2::aa = 100;

namespace NS=ns::ns1::ns2;

4.结构、联合、枚举

1.结构体

结构体关键字struct可以省略

结构体中可以包含函数,称为成员函数

结构体中的数据成员,称为成员变量

(在C语言中验证)

2.联合体(共用体)

联合体的关键字union,也可以省略。

3.枚举

枚举的关键字enum可以省略

在C++中枚举是一种完全独立的类型,不能把整数直接赋值给枚举变量。

5.字符串

C:字符数组、字符指针

char *c;

char c[];

C++: 表示字符串的类型string

< > >= <= += = != ==

6.布尔类型

在C++中bool类型是基本类型之一,用来表示逻辑值

bool类型只有两种值,1表示真 true,0表示假 false

bool类型占一个字节

bool类型可以接受任意类型的表达式

只要非0 即为真

7.函数重载

在相同的作用域中,函数名相同,参数表不同,这样的函数构成重载关系。

函数重载原理:

通过C++编译器换名实现的。

8.缺省参数/默认参数

一般情况下,实参个数应与形参个数相同,但C++允许实参数与形数个数不同。

1.在声明函数时,所有指定默认值的参数必须出现在不指定默认值的参数的右边。

默认参数必须靠右。

2.在同时使用缺省参数和函数重载时,要避免出现二义性

3.如果函数的声明和定义 分开写了,那么缺省要写在声明里,定义时不写。

9.动态内存分配

C: malloc()/free() 函数

C++: new/delete 运算符

new 分配内存

delete 释放内存

运算符new分配空间的基本用法:

指针变量名=new 类型;

new在分配空间的同时,可进行初始化

指针变量名=new 类型(初值);

delete 指针变量名;

new 还可以用于为数组动态分配内存空间

指针变量名 = new 类型[数组元素个数];

(new 类型[数组元素个数]{初始值},但是需要c++11标准支持 )

char *p = new char[3];

释放数组内存:

delete []指针变量名;

delete []p;

作业:

写一个C++风格的结构体

实现功能:

从键盘输入年月日,输出 这是这一年中的第几天

注:要考虑闰年。

时间: 2024-10-22 18:20:51

C++第一天学习的相关文章

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

《嵌入式设计》第一周学习总结

<嵌入式设计>第一周学习总结 学习时遇到的主要问题 1.运行环境未及时安装 2.命令不熟练 3.上课状态不好 解决方法 1.及时安装环境并熟悉运行 2.参考Linux操作系统实用教程并百度一些问题的解决办法 3.及时调整自己状态 主要学习内容 Linux一些简单基本的操作, 用.c文件输出hello word 用vi test.c 创建.c文件 #include <stdio.h> int main(){ printf("hello word\n"); } 并用

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145201 《Java程序设计》第一周学习总结

# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学起,发现并不是自己想想中那么难,只要一步一个脚印,每周有自己的计划,并按照计划按部就班的完成,最后一定会拥有自己的小成果的. 1.1Java不只是语言 Java经过多年的版本更新后,最新的版本是Java SE8. 在java发展的过程中,它的应用领域越来越广,根据不同级别的应用开发区分了不同的应用版本,最终j

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20145224-陈颢文 《Java程序设计》第一周学习总结

20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大平台,其中Java SE是基础.Java的一大特点是它可以跨平台,而JVM对Java的跨平台提供了支持,它就类似于一个虚拟机,只要在当前平台安装了相应的JVM,Java程序就有了可以在此平台上运行的基础啦.JRE是Java的执行环境,在安装了JRE的计算机上就可以运行Java的程序了,当然光是可以跑代码对于程

第一周学习总结

马原第一章学习总结 重点一:哲学基本问题 1. 哲学基本问题的内容 思维和存在的关系问题 2. 唯心主义两大派别 主观唯心主义和客观唯心主义 3. 唯物主义三个发展阶段(每个阶段的特征,对“物质”的理解) 一. 朴素唯物主义   认为物质即物质形态 二. 形而上学唯物主义   认为物质即原子 三. 辩证唯物主义    认为物质是标志客观实在的哲学范畴 重点二:物质与意识 1.    物质的定义:物质是标志客观实在的哲学范畴,这种客观实在是人通过感觉感知的,它不依赖于我们的感觉而存在. 2.意识的

2014025689《嵌入式设计》第一周学习总结

<嵌入式设计>第一周学习总结 正式开始学习<嵌入式系统程序设计>,在课上老师指导我们复习了Linux操作系统的Shell命令.vim编辑器以及gcc编译相关方面的知识:在课下,通过查找资料和"实验楼"的练习. 一丶学习时遇到的问题 1.运行环境未及时安装,安装出现问题 2.预习不足,学习目标不明确 3.命令不熟练 二丶解决办法 1.及时安装环境并百度搜索问题: 在虚拟机安装64位操作系统必须满足以下三个条件:(1) 64位的CPU(2)安装的系统必须为64位(3

201521123100 《Java程序设计》 第一周学习总结

Java第一周学习总结 1.简单了解学习了Java及其开发环境,学习使用了Notepad++&eclipse开发软件的使用 2.熟练完成了使用Notepad++运行第一个Java程序"Hello World",并且学习了cmd的使用方法 3.简单的掌握了eclipse的使用方法,但仍不太熟练,会在下一周更加熟练使用eclipse 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么?(请用自己的语言书写) 因为Java是在虚拟机上编译运行的,不像c语言要

magedu第一天学习(计算机基础部分)

第一部分 1.计算机系统的组成部分 计算机系统是由硬件系统和软件系统组成的. 2.计算机的发展史 1946年第一台计算机ENIAC在美国宾州大学诞生. 电子管时代--->晶体管时代--->集成电路时代--->大规模集成电路时代 3.计算机都遵循冯诺依曼体系结构 运算器.控制器集中在CPU里面(central processing unit) 存储器.输入设备.输出设备 特性:使用二进制 4.摩尔定律 当价格不变时,集成电路上可容纳的元器件的数目,在18-24个月后便会增加一倍,相应的性能