zoukankan      html  css  js  c++  java
  • c++课程学习(未完待续)

    关于c++课程学习

    按照计划,我首先阅读谭浩强c++程序设计一书的ppt,发现第一章基本上都是很基础的东西。

    同时,书中与班导师一样,推荐了使用visual c++。
    而师爷的教程里面推荐使用的是eclipse,并且使用的时候要新建一个project。
    但是个人其实更喜欢使用devc++,因为之前编写c程序的时候,汉森大神推荐了使用devc++,使用了一个学期以后,认为devc++比较简明,使用起来很方便。

    课时1 第一个c++程序

    **第一节主要讲了一些简单的c++程序,让我对c++有了初步的认识。**

    *c++笔记

    1.cout:standard output 标准输出。
    2.<<:左移,但是<<左面是out的时候,意思是将<<后面的往out里面输出。
    3.<<""<<""<<endl:连续插入;endl:end of line。
    4.cin:输入。
    5.cin>>变量的名字

    *eclipse使用技巧

    1.更换变量名的时候可以双击变量名,再右键,点refactor,更改变量名,这样所有的变量名就都会改变。
    2.文件名字有“”的意思是没有保存,保存以后,“”消失。
    3.一个程序可能同时运行多次,要在绿色按钮处单个处理。

    课时2 什么是对象

    **第二节主要讲了面向程序对象中什么是对象的问题,并且与c语言(面向过程)做出了区别。**

    c语言主要是面向过程,更多的是对于过程的描述,有了解题的思路以后,一步一步地将过程描述出来。主要是函数,从main函数出发到很多的函数,最终得到最终值。
    而c++主要是面向对象,将对象赋予操作,从而达到解题的目的。
    所有的东西都是对象(object),可变也可不变。

    课时3 面向对象基本原理

    **第三节主要讲了c++(object oriented programming)的一些原理**

    1.对象之间存在交互,发送和接收消息。(objects send and recieve messages(object do things))
    -messages are composed by senders;messages are interpreted by receivers;messages are implemented by methods.(传送命令的人发出命令,但是做不做由接收者决定;而是否执行是通过不同方法而实现的。)
    -messages may cause receivers to change state;may return results.(得到信息的方法是通过返回值(消息的直接反馈)或者看状态是否改变。)
    2.类(class)(类型)中可能会有很多对象。
    -对象是实体,而类是概念。
    -类定义了对象有一定的特性。
    3.oop的特征
    -everything is an object.
    -a program is a bunch of objects telling each other what to do(而不是how to do) by sending messages.
    -each object has its own memory(内存) made up of other objects.
    -every object has a type.(任何东西都是由类别定义出来的,先有类别,才有对象。)
    -all objects of a particular type can recieve the same messages.(所有类别的东西都有能接受同样的信息;能接受特定一样信息的东西都可以算是同一类别)
    4.an object has an interface.(任何对象都有它的接口(才能与外界联系))
    -the interface is the way it receives messages.
    -it is defined the class the object belong to.(具有相同接口的事物属于同一类)
    接口的作用:交流;保护(接口内部的事物是隐藏的)。

    课时4 自动售票机例子

    **第四节主要通过自动售票机的例子让我们对c++有了进一步的认识**

    eclipse

    1.一般创建project的名称都应该是小写,在eclipse中大写代表“惊慌”。
    2.而class的命名一般都喜欢用每一个单词的首字母大写。
    3.name space 一般都是比较复杂的程序才使用,如果不勾class里面的namespace,那么一般这个类会分到dfine namespace中。
    4.finish以后会生成两个文件(.h文件和.cpp文件)
    5.在头文件里面声明(自动售票机的public(动作)和private(对象));在.cpp里面定义在.h里面所声明的那些东西的实体
    6.::→是解析符【四个点表示一个范围】
    -::(指后面的函数是属于前面的某一类)
    -::
    -viod S::f()
    {
    ::f();//woule be recursive otherwise.(全局函数)
    ::a++;//select the global a(全局)
    ::a--;//the a at class scope
    }

    课时5 3-1 头文件

    **第五节主要讲了头文件的重要事项和类与头文件的使用事项**

    1.类的定义
    -in c++,separated .h and .cpp files are used to define one class.(一个类通常会展开头文件和.cpp文件)
    -class declaration and prototypes in that class are in the header file(.h).(类的声明和函数原型都放在头文件中)
    -all the bodies of these functions are in the source file (.cpp).
    2.一个函数定义在头文件里面,在所有要用到这个函数的地方include这个头文件。
    3..h和.cpp应该成对出现。
    4.#include是编译预处理指令。
    5.include的作用是吧要include的文件写在需要include的地方。
    6.include有三种形式
    -#include"xx.h":在写include的当前文件去寻找.h文件
    -#include<xx.h>:在系统目录里面去寻找。
    -#include和第二种形式一样(c++里面的特殊形式)。
    7.标准头文件一定要有(为了防止在一个.cpp里面include同一个.h多次,而出现多次.h的声明)
    `#ifndef HEADER_GLAG

    define HEADER_GLAG

    //Type declaration here...`
    8.tips for header
    -每一个类的声明都要放在头文件里面(一个头文件里面要求放一个类的声明)
    -对应的源代码文件用相同的前缀。

    课时6 3-2 时钟的例子

    **第六节主要以时钟为例介绍了c++的使用**

    1.先看由什么对象组成的(这个里面是有小时和分钟两个对象)。
    2.abstract(抽象):看待一个事情的时候有意的看不到什么东西(不考虑更内部的事情
    3.小时和分钟相似之处:都是+1;不同之处:(终点不一样)
    4.分为两个类
    -number display:小时或者是分钟(接受动作)
    -clock display:小时和分钟的组合(clock display里面用到了number display)


    -limit:什么时候turn over。
    -value:现在的值是多少。
    -increase:判断返回值是true还是false(到limit返回true)

    最终代码可以写出:
    class ClockDisplay{ NumberDisplay hours; NumberDisplay minutes; Constructor and methords omitted. } class NumberDisplay{ int limit; int value; Constructor and methords omitted. }
    需要五个源程序文件:每个类有两个和一个main函数(合理)。

    课时7 3-3 成员变量

    **第七节主要介绍了成员变量和本地变量的区别**

    1.变量有三种:local variable(本地变量),成员变量(fields),函数参数(parameters)。
    1.本地变量:在一个函数的内部定义的变量(只在函数运行时候有定义)。
    2.本地变量和某个成员变量(相同时,就近原则。(按照最近的定义来,本地变量起作用,成员变量屏蔽)
    3.-fields:定义在类的所有函数和构造函数之外的变量,永远存在。
    -local variable:和函数有关,只能在函数中使用。
    -parameters和local variable一样。

    课时8 4-1 成员变量的秘密

    **第八节主要讲了成员变量的调用和本地变量的区别,介绍了this的含义**

    理解为主

    1.point a;a.print()可以调函数,被调函数和变量之间是有联系的,函授部知道对a做事情,这个变量之间的联系叫做this。(this是一个指针,类型就是这个函数所处的类的对象的指针)
    Point a;
    a.print();
    →(can be regarded as)
    Point::print(&a);

    课时9 4-2 构造与析构

    **第九节主要讲了构造函数和析构函数**

    1.constructor(构造函数):保证对象创建出来就能够被初始化。
    class X{ int i; public: X(); };
    构造函数和类的名字是相同的;没有任何的返回类型;构造函数会在对象创建的时候自动的建立。
    2.destructor(析构函数):当对象被消灭的时候调用。
    class Y{ public: ~Y(); };
    ~:tilde.
    3.没有构造就不会析构。

    课时10 4-3 对象初始化

    **第十节主要讲了空间分配的原则和default constructor**

    1.空间在进入大括号的时候就已经分配,但构造函数是在运行到对象出现的那一行才分配空间。
    2.default constructor:没有参数的构造函数。

    不是default constructor

    是default constructor

    error

    课时11 5-1 new & delete

    **第十一节主要讲了如何动态的制造对象(动态的内存分配)**

    1.-new(创建对象)
    -new int(类型)
    -new Stash(分配完空间去调用构造函数,结果是得到一个地址)
    -new int[10]
    -delete(回收对象,析构函数先被调用再被收回(delete))
    -delete p;
    -delete[] p;new带[]delete也带[]
    2.int *psome=new int[10];
    delete[]psome;
    delete的[]是告诉系统有多个new的内存需要被释放,要调用多个析构函数。没有[]的话只能调用第一个析构函数。
    3.tips for new and delete:
    -不要用delete释放不是用new分配出来的空间。
    -不要用delete两次释放同一块空间。
    -new有[],delete也要有[].
    -it's safe to applu delete to the null pointer(nothing happens).

    课时12 5-2 访问限制

    **第十二节主要讲了关于访问属性的问题**

    1.private:只能被自己(这个类的成员函数)访问的成员(函数或者变量);public:可以被别人访问的成员;protect:只有子类能访问的数据。
    2.private只有在编译的时候受限制。运行的时候不受限制。
    3.可以声明别的函数或者类或者类里面的函数是朋友(friend),朋友就可以访问private。

    课时13 5-3 初始化列表

    **第十三节主要讲了初始化赋值**

    1.对值的初始化除了可以在函数里面赋值,也可以用A():p(0)的形式。
    一
    二
    以上两种形式一样。
    图二是原初始化列表(initializer list),可初始化任何的变量,比构造函数之前被执行。

    2.类里面的赋值最好都用初始化赋值。

    课时14 6-1 对象组合

    **第十四节主要讲了对象组合的两种类型**

    1.对象的组合就是把现有的对象组合成一个新的对象。
    2.一个类的成员变量可以使另一个类的对象。
    3.fully:别人的对象是我对象的一部分。
    by reference:可以调用别人的对象,但是并不是一部分。

    前三种属性是fully,最后一种属性是by reference。

    课时15 6-2 继承

    **第十五节主要讲了继承的规则**

    1.继承是已有的类经过改造得到一个新的类。
    2.inheritance:

    student要比person具有更多的数据。
    3.新的类一半在上面,老的类一般在下面。
    4.表达继承的方法:class A{...};class B:public A{...};表示B类继承了A类(B是A的子类,A是B的父类)。
    5.父类私有的东西在子类里面是存在的,但是不能碰。而父类protected的东西只有子类可以碰,而main函数不能碰。
    6.所有的数据都是private,留protected的接口给子类,还有public是所有人都可以访问的。

  • 相关阅读:
    Asp.net mvc 使用Ajax调用Action 返回数据。
    浅析Asp.net MVC 中Ajax的使用
    Asp.net MVC2中使用Ajax的三种方式
    Ajaxa请求:参数、传递的数据、返回的数据
    ASP.NET MVC 模块与组件——发送邮件
    MVC中根据后台绝对路径读取图片并显示在IMG中
    MVC、一般处理程序hanlder 输出图片文件
    邮箱验证功能原理 语法 属性
    C# 注册邮箱验证的实现代码
    注册页实现激活邮箱验证(asp.net c#) 详细实现
  • 原文地址:https://www.cnblogs.com/neveslalala/p/5177843.html
Copyright © 2011-2022 走看看