C++入门1

一:语言特性:过程式,对象式程序设计

面向过程的程序设计(过程式的程序设计):代码是从上到下,逐步求精。按顺序,一步一步把问题解决;

基于对象的程序设计和面向对象的程序设计:当我们需要一个类的时候,定义的结构变量不叫类,会说定义了一个对象;也就是 结构变量==对象,当然也可以是一个函数。

二:继承性

既可以使用父类的函数功能,又可以增加自己的方法

三:多态性

父类和子类之间都有同名函数,调用的时候有多种方法,这多种方法称为多态性问题。在这里就可以说是面向对象的程序设计,这样的好处就是易于维护,易于扩展,模块化(保护了数据安全)。

一个简单的程序

int main()
{
	return 0;//main() 中返回0,一般返回成功;返回非0,一般返回错误;返回值在Window中,返回值没啥用 ;在Linux下,是有用的
}
//main函数是整个函数的入口函数,系统都是从Main函数开始执行
四:工程文件的构成

一个项目中包括多个.cpp文件(源代码文件)和.h(头文件,head);

.hpp可以定义和实现在一起,可以有效的减少编译

五.可移植性问题

C++属于编译性语言,需要编译过程,把设计好的程序编译成二进制文件,也就是可执行文件(执行速度更快);对每一个源文件进行编译,再把所得的所以目标文件链接成一个,生成一个可执行文件。

也就是源码文件,在不同环境下都可以使用。

lua属于解释性语言,不进行运行编译,以文本形式存储代码,先解释在运行。

六.命名空间简介

如果两个.cpp文件中包括两个完全一样的函数,那么将无法编译(同名实体:同名函数,同名变量,同名的类定义);解决方法:命名空间,防止名字冲突引入的一种机制,系统中可以定义多个命名空间,且不可以同名;

相当于一个作用域,实现方式

namespace 命名空间名
	{
同名内容
	}

(在同一文件下)外界如何访问,命名空间的函数格式如下:

命名空间名::+实体名,其中::称为作用域运算符;\n,换行符

(在不同.cpp文件中)调用,需要生成.h 的头文件,把需要的函数包含在里面。

using namespace:使用某一个命名空间

七.基本输入输出cin,cout

C++标准库,输入输出流iostream库,一个字符序列。(属于头文件,而且没有拓展名)

#include<iostream>
int main()
{
	std::cout << "晚上好";
	return 0;
}

std:系统定义的命名空间(标准库命名空间),不想用的话可以,

#include<iostream>
using namespace std;
int main()
{
	cout << "晚上好\n";
	return 0;
}

cout:c+out,console+output,控制台+输出(在C++中就是一个对象),是一个标准输出对象(可以就当成一个屏幕)。

“<<"跟cout一起使用的话,就发生了重载,不再是左移运算符,而是输出运算符;

那么cout<<可以理解为在控制台中输出;

C语言中叫结构,C++中我们叫类;

C中我们定义一个结构变量,C++中我们叫做对象。

#include<iostream>
using namespace std;
struct student
{
	char name[100];
	int number;
};
namespace std
{
	int itest;
	struct student cout1;//这就是一个结构变量(对象)
}
int main()
{
	cout << "晚上好\n";
	return 0;
}

七."\n"跟”endl“的区别

std::endl:模板函数名,相当于函数指针,这里先理解为函数,也可以当作是一个操作符;

在有std::cout的地方都有std::endl,而且一般出现在语句末尾;

主要作用:

1.输出换行符,相当于”\n“;

2.强制,刷新输出缓冲区;刷新完,缓冲区中所有数据都被系统清掉的;

输出缓冲区:一段内存,cout输出的时候是输出到输出缓冲区上,那么什么时候输出缓冲区会显示到屏幕上呢;

首先,当缓冲区满的时候;

其次,当程序执行到return 时候;

然后,就是调用,std::endl的时候;

最后,系统不繁忙的时候,系统查看缓冲区,发现新内容,输出到屏幕上;

#include<iostream>
using namespace std;
int main()
{
	int x = 3;
	std::cout << x << "的平方是:" << x * x << std::endl;
	x++;
	std::cout << x << "的平方是:" << x * x << std::endl;
	return 0;
}

要避免在一个表达式中,对一个变量改变多次值,这样不同的编译器会有不同的输出。

八.cin,标准输入(就是键盘)

在C++中,>>和cin一起用,就发生了运算符重载,此时是当作输入使用;

#include<iostream>
using namespace std;
int main()
{
	std::cout << "请输入两个数" << std::endl;
	int value1 = 0, value2 = 0;
	std::cin >> value1 >> value2;
	std::cout << value1 << "和" << value2 << "的和是:" << value1 + value2 << std::endl;
	return 0;
}

九.局部变量及初始化

随时用到,随时定义;

#include<iostream>
using namespace std;
int main()
{
	for (int i=0; i < 10; i++)//在这里i的作用域只限定在for的作用域之内
	{
		cout << i << endl;
	}
	return 0;
}

新标准可以这样写

#include<iostream>
using namespace std;
int main()
{
	for (int i{0}; i < 10; i++)//在这里i的作用域只限定在for的作用域之内
	{
		cout << i << endl;
	}

	return 0;
}

新标准的数组形式:

#include<iostream>
using namespace std;
int main()
{
	//for (int i{0}; i < 10; i++)//在这里i的作用域只限定在for的作用域之内
	//{
	//	cout << i << endl;
	//}
	int a[]{ 11,12,34 };
	cout << a[2] << endl;

	return 0;
}

十.auto

auto:变量的自动类型推断(编译期间),可以在声明变量的时候,可以自动根据初始值,自动选择匹配的类型。而且,因为发生在编译期间,所以不会降低程序的运行效率;

主要作用:有些数字类型名非常长,用auto非常的简洁

十一.头文件防卫式声明

在进行大项目开发时,多次包含头文件,总有可能发生重定义。因此,引入一个头文件防卫式声明。

具体操作:

#ifndef 后跟头文件名,而且所有头文件都需要加上。

#ifndef __project1__h__
#define __project1__h__





//在最后加
#endif
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值