打印

改学C++了

[复制链接]
698|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
waiter|  楼主 | 2016-7-1 07:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
装了Visual Studio community,免费软件啊。---终于用上正版软件了,这对个人来说,的确不容易。。。
开始学C++,开始上学习课程。。。。

相关帖子

沙发
ternenceliu| | 2016-7-1 14:22 | 只看该作者
做啥项目?

使用特权

评论回复
板凳
waiter|  楼主 | 2016-7-1 18:55 | 只看该作者
为后面编用户软件做准备。
开始上学习课程,直接学C#:

1        什么是C#
C#是专门为.net应用而开发的高级语言。它集成了其他高级语言的优点,即满足了应用程序的快速开发能力,又没有牺牲各种灵活性,同时它又忠实地集成了C和C++的优点。

   
2        C#的运行模型
目前高级语言编写的程序有两种形式,一种是被编译成机器语言在CPU上执行,比如Visual C++、Pascal等。另一种是边解释边执行的,称为解释性语言,比如Visual Foxpro、Visual Basic 3.0等。

IL:中间语言,InterMediate Language,是一种与硬件平台无关的指令集。
C#程序并不是一次编译后执行的,而是先编译成中间代码,然后在.net环境由JIT编译器边编译边运行。这样实现的最大好处是消除了编程语言的差异,节约了系统资源。

3        C#的基本语法

3.1        标识符identifier
区分大小写;
字母或者下划线开头,由字母、数字、下划线、和美元符号组成。
标识符不能与关键字相同,但可以使用@前缀来避免这种冲突。
即 @(关键字)这种标识符是合法的。


3.2        关键字




3.3        数据类型

3.3.1        值类型

整数类型:




3.3.2        引用类型




3.3.3        装箱和拆箱
和装箱相比,拆箱操作是显式操作——你必须告诉编译器,想从对象中抽取出哪一种值类型。当执行拆箱操作时,C#编译器检测所请求的值类型实际上存储在对象实例中。经过成功的确认,该值才能被拆箱。


3.4        变量和常量

在计算机中变量代表存储地址,而变量的类型决定了存储在变量中的数值的类型。
带有const修饰符声明的变量称为常量,常量就是其值固定不变的量
带有static修饰符声明的变量称为静态变量。静态变量的生存期是从被装载起,至到包含了这个变量的程序运行结束为止。
不带有static 修饰符声明的变量称为实例变量
局部变量是指在一个独立的程序块中声明的变量,局部变量的生存周期只在该范围中有效,当程序运行到这一范围时,该变量即开始生效,程序离开时变量就失效了。

3.5        运算符和表达式


is操作符被用于动态地检查运行时对象类型是否和给定的类型兼容,运算“e  is  T ”的表达式,其中e 是一个表达式,T 是一个类型,该运算返回值是一个布尔值,它表示e是否能通过引用转换、装箱转换或拆箱转换,成功地转换于T 类型。

as 操作符用于通过引用转换或装箱转换,将一个值显式地转换成指定的引用类型。它与像显式类型转换,不会产生任何异常。如果转换不能进行,那么结果值为null。
new 操作符用于创建一个新的类型实例
typeof 操作符用于获得系统原型对象的类型,例如:
typeof(int)、typeof(System.int32) 、typeof(string)、typeof(double);
上面四个表达式的输出分别是:
Int32 、 Iint32 、string 、double
checked 和unchecked 操作符用于整型算术运算时控制当前环境中的溢出检查

使用特权

评论回复
地板
waiter|  楼主 | 2016-7-1 18:55 | 只看该作者

3.6        C#语句


空语句是一种最简单的语句,它不实现任何功能,C#中空语句的形式如下:

块语句把一系列语句包装成一个语句,块语句的一般格式如下:
{
        一个或者多个语句;
}

标签语句:
C#程序允许在一条语句前面使用标签前缀,这种语句类似于汇编语句,其形式如下:
标签名称:语句
用标签语句主要为配合goto语句完成程序的跳转功能,例如:
if(x>=0)
        goto large;
x = -x;
large:return x;  

声明语句主要完成对一个常量或者变量的声明,声明一个变量的语法结构如下:
类型 [变量 [ = 表达式 ]];

表达式语句由表达式加上分号“;”组成。其一般形式为:
表达式;

选择语句:
当程序中需要进行两个或两个以上的选择时,可以根据条件判断来选择将要执行的一组语句。C#提供的选择语句有:
if 语句
if ( 布尔表达式 )
{
        语句块;
}
switch 语句
switch(控制表达式)
{
case 常量表达式:
语句块;
default:
语句块;
}


循环语句:


跳转语句:

return语句用于退出类的方法,把控制返回该方法的调用者,如果方法有返回类型,return语句必须返回这个类型的值 。


异常处理语句:
异常可以以两种不同的方式引发:
throw 语句无条件即时的抛出异常;
C#语句和表达式执行过程中激发了某个异常的条件,使得操作无**常结束,从而引发异常。例如整数除法,操作分母为零时将抛出一个System.DivideByZeroException异常。
在C#中的try语句提供了一种机制来捕捉块执行过程中发生的异常,以下是它的三种可能的形式:
try -catch(s)
try –finally
try -catch(s)-finally


3.7        方法和类

使用特权

评论回复
5
waiter|  楼主 | 2016-7-3 20:56 | 只看该作者

4        面向对象编程基础


4.1        对象object
每个对象可用它本身的一组属性和其上的一组操作来定义。

        封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,对象内部对用户是隐藏的。封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需用设计者提供的消息来访问该对象。




4.2        消息message
消息包含三个方面的内容:
        消息的接收者(比如汽车)
        接收对象应采用的方法(比如油门)
        方法所需要的参数(比如给多少油)。


4.3        类class
类是C#中的一种重要的复合数据类型,是组成C#程序的基本要素,它封装了一类对象的状态和方法,是对一系列具有相同性质的对象的抽象是对对象共同特征的描述。

声明一个类,语法很简单:
  [修饰符] class 类名
    {
    }
类的修饰符可以是以下几种之一或者是它们的组合(同一修饰符不允许出现多次)。
        new: 仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。
        public: 表示不限制对该类的访问。
        protected: 表示只能从所在类和所在类派生的子类进行访问。
        internal: 只有其所在类才能访问。
        private: 只有对包.Net 中的应用程序或库才能访问。
        abstract: 抽象类,不允许建立类的实例。
        sealed: 密封类,不允许被继承。




4.4        构造函数和析构函数
构造函数用于执行类的实例的初始化。每个类都有构造函数,即使我们没有声明它,编译器也会自动地为我们提供一个默认的构造函数。

c#语言可以在同一个类中定义具有相同名字的几个方法,只要这些方法有不同的参数设置(参数的数目、参数类型或者参数的顺序)就可以,这称为方法重载。
在访问一个类的时候,系统将最先执行构造函数中的语句。实际上,任何构造函数的执行都隐式地调用了系统提供默认的构造函数base()。
一个类的构造函数通常与类名相同。
在构造函数中,不要做对类的实例进行初始化以外的事情,也不要尝试显式地调用构造函数。
构造函数不声明返回类型。
一般地,构造函数总是public 类型的。如果是private 类型的,表明类不能被实例化,这通常用于只含有静态成员的类。


在类的实例超出范围时,我们希望确保它所占的存储能被收回。C#中提供了析构函数,用于专门释放被占用的系统资源。析构函数不能是继承而来的,也不能显式地调用。
析构函数的名字与类名相同,只是在前面加了一个符号~ 。析构函数不接受任何参数,也不返回任何值。如果你试图声明其它任何一个以符号~ 开头而不与类名相同的方法,和试图让析构函数返回一个值一样,编译器都会产生一个错误。

使用特权

评论回复
6
waiter|  楼主 | 2016-7-3 20:57 | 只看该作者
今天只学了 对象、消息和类的概念。。。

使用特权

评论回复
7
dongshan| | 2016-7-4 16:07 | 只看该作者
waiter 发表于 2016-7-3 20:57
今天只学了 对象、消息和类的概念。。。

c++中的消息是什么?
我晕了,学过好多年了C++了,不知道C++中的消息是什么

使用特权

评论回复
8
waiter|  楼主 | 2016-7-5 10:42 | 只看该作者

看来是偶搞错了?  我还在看通用性的文档,所以可能这个“消息”,只是面向对象编程中的概念,不是C++中概念?

使用特权

评论回复
9
nethopper| | 2016-7-6 18:09 | 只看该作者
题目说C++,内容说的是C#

使用特权

评论回复
10
waiter|  楼主 | 2016-7-6 21:25 | 只看该作者
nethopper 发表于 2016-7-6 18:09
题目说C++,内容说的是C#

被你看到了,
我的确看的是“C#.NET入门到精通.ppt”

使用特权

评论回复
11
brandnew| | 2016-7-6 21:35 | 只看该作者
哈哈,支持楼主,从FPGA码农,转C#码农。

使用特权

评论回复
12
123654789| | 2016-7-7 09:57 | 只看该作者
学会了之后,能赚钱吗 ???

使用特权

评论回复
13
waiter|  楼主 | 2016-7-10 20:26 | 只看该作者
不能什么都是要用来直接赚钱sai~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

187

帖子

2

粉丝