亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

Professional C++ 01 A Crash Course in C++ 快速的C++基礎知識復習

2019-11-06 09:48:05
字體:
來源:轉載
供稿:網友

本章節主要是對C++基礎知識的回顧,不會涉及太簡單的知識點,比如=和==的區別,也不會涉及太復雜的知識,比如volatile關鍵字的作用。

(1) 空間命名規則

#ifndef NAMESPACE_H#define NAMESPACE_H// namespaces.hnamespace mycode {    void foo();}#endif // NAMESPACE_H
#include "namespace.h"#include <iostream>void mycode::foo(){    std::cout << "foo() called in the mycode namespace" << std::endl;}
#include "namespace.h"using namespace std;using namespace mycode;int main(int argc, char *argv[]){    foo();}output:

foo() called in the mycode namespace

(2) 變量的定義, 操作符,循環語句全部都是基礎知識。

(3) 枚舉類型

typedef enum { kPieceTypeKing, kPieceTypeQueen, kPieceTypeRook,	kPieceTypePawm} PieceT;(4) Stack 和 Heap的區別

stack分配的空間一般都是程序自動管理,heap用于new分配,delete刪除。

(5)綜合舉例,一個管理員工系統

#ifndef EMPLOYEE_H#define EMPLOYEE_H// employee.h#include <iostream>namespace Records {    const int kDefaultStartingSalary = 30000;    class Employee {    public:        Employee();        void PRomote(int inRaiseAmount = 1000);        void demote(int inDemeritAmount = 1000);        void hire();        void fire();        void display();        void setFirstName(std::string inFirstName);        std::string getFirstName();        void setLastName(std::string inLastName);        std::string  getLastName();        void setEmployeeNumber(int inEmployeeNumber);        int getEmployeeNumber();        void setSalary(int inNewSalary);        int getSalary();        bool getIsHired();    private:        std::string mFirstName;        std::string mLastName;        int mEmployeeNumber;        int mSalary;        bool fHired;    };}#endif // EMPLOYEE_H
#include "employee.h"#include <iostream>using namespace std;namespace Records {Employee::Employee(){    mFirstName = "";    mLastName = "";    mEmployeeNumber = -1;    mSalary = kDefaultStartingSalary;    fHired = false;}void Employee::promote(int inRaiseAmount){    setSalary(getSalary() + inRaiseAmount);}void Employee::demote(int inDemeritAmount){    setSalary(getSalary() - inDemeritAmount);}void Employee::hire(){    fHired = true;}void Employee::fire(){    fHired = false;}void Employee::display(){    cout << "Employee: " << getLastName() << ", " << getFirstName() << endl;    cout << "-------------------------" << endl;    cout << (fHired ? "Current Employee" : "Former Employee") << endl;    cout << "Employee Nmber: " << getEmployeeNumber() << endl;    cout << "Salary: $" << getSalary() << endl;    cout << endl;}void Employee::setFirstName(std::__cxx11::string inFirstName){    mFirstName = inFirstName;}std::__cxx11::string Employee::getFirstName(){    return mFirstName;}void Employee::setLastName(std::__cxx11::string inLastName){    mLastName = inLastName;}std::__cxx11::string Employee::getLastName(){    return mLastName;}void Employee::setEmployeeNumber(int inEmployeeNumber){    mEmployeeNumber = inEmployeeNumber;}int Employee::getEmployeeNumber(){    return mEmployeeNumber;}void Employee::setSalary(int inNewSalary){    mSalary = inNewSalary;}int Employee::getSalary(){    return mSalary;}bool Employee::getIsHired(){    return fHired;}}
#ifndef DATABASE_H#define DATABASE_H#include "employee.h"#include <iostream>// Database.hnamespace Records {    const int kMaxEmployees =100;    const int kFirstEmployeeNumber = 1000;    class Database {    public:        Database();        ~Database();        Employee &addEmployee(std::string inFirstName, std::string inLastName);        Employee &getEmployee(int inEmployeeNumber);        Employee &getEmployee(std::string inFirstName, std::string inLastName);        void displayAll();        void displayCurrent();        void displayFormer();    protected:        Employee mEmployees[kMaxEmployees];        int mNextSlot;        int mNextEmployeeNumber;    };}#endif // DATABASE_H
// Database.cpp#include <iostream>#include <stdexcept>#include "database.h"using namespace std;namespace Records {    Database::Database()    {        mNextSlot = 0;        mNextEmployeeNumber = kFirstEmployeeNumber;    }    Database::~Database()    {    }    Employee &Database::addEmployee(string inFirstName, string inLastName)    {        if (mNextSlot >= kMaxEmployees) {            cerr << "There is no more room to add the new employee!" << endl;            throw exception();        }        Employee &theEmployee = mEmployees[mNextSlot++];        theEmployee.setFirstName(inFirstName);        theEmployee.setLastName(inLastName);        theEmployee.setEmployeeNumber(mNextEmployeeNumber++);        theEmployee.hire();        return theEmployee;    }    Employee &Database::getEmployee(int inEmployeeNumber)    {        for (int i = 0; i < mNextSlot; i++) {            if (mEmployees[i].getEmployeeNumber() == inEmployeeNumber) {                return mEmployees[i];            }        }        cerr << "No empolyee with employee number " << inEmployeeNumber << endl;        throw exception();    }    Employee &Database::getEmployee(string inFirstName, string inLastName)    {        for (int i = 0; i < mNextSlot; i++) {            if (mEmployees[i].getFirstName() == inFirstName &&                    mEmployees[i].getLastName() == inLastName) {                return mEmployees[i];            }        }        cerr << "No match with name " << inFirstName << " " << inLastName << endl;    }    void Database::displayAll()    {        for (int i = 0; i < mNextSlot; i++) {            mEmployees[i].display();        }    }    void Database::displayCurrent()    {        for (int i = 0; i < mNextSlot; i++) {            if (mEmployees[i].getIsHired()) {                mEmployees[i].display();            }        }    }    void Database::displayFormer()    {        for (int i = 0; i < mNextSlot; i++) {            if (!mEmployees[i].getIsHired()) {                mEmployees[i].display();            }        }    }}
#include <iostream>#include "database.h"using namespace std;using namespace Records;int main(int argc, char *argv[]){    Database myDB;    Employee &emp1 = myDB.addEmployee("Greg", "Wallis");    emp1.fire();    Employee &emp2 = myDB.addEmployee("Scott", "Kleper");    emp2.setSalary(100000);    Employee &emp3 = myDB.addEmployee("Nick", "Solter");    emp3.setSalary(10000);    emp3.promote();    cout << "all employee: " << endl;    cout << "current employee: " << endl;    cout << endl;    myDB.displayCurrent();    cout << endl;    cout << "former employee: " << endl;    cout << endl;    myDB.displayFormer();}output:

all employee:

current employee:

Employee: Kleper, Scott

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

Current Employee

Employee Nmber: 1001

Salary: $100000

Employee: Solter, Nick

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

Current Employee

Employee Nmber: 1002

Salary: $11000

former employee:

Employee: Wallis, Greg

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

Former Employee

Employee Nmber: 1000

Salary: $30000


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频一区二区三区四| 久久夜色精品国产亚洲aⅴ| 成人午夜黄色影院| 九九久久久久久久久激情| 日韩精品在线看| 精品久久久久久久久久久久久| 日韩久久精品电影| 久久久999成人| 亚洲国产精久久久久久久| 亚洲电影中文字幕| 日韩精品视频在线播放| 国产视频在线观看一区二区| 欧美一性一乱一交一视频| 日韩成人在线免费观看| 国产精品亚洲激情| 不卡伊人av在线播放| 精品人伦一区二区三区蜜桃免费| 日韩欧美一区二区在线| 91网在线免费观看| 亚洲少妇中文在线| 中日韩美女免费视频网站在线观看| 国产精品视频999| 日本不卡视频在线播放| 在线精品国产成人综合| 久久影视三级福利片| 超在线视频97| 91黑丝在线观看| 欧美日韩性视频在线| 欧美一区二区三区艳史| 欧美性xxxx极品高清hd直播| 国产精品jvid在线观看蜜臀| 91久久久久久国产精品| 国产自产女人91一区在线观看| 亚洲三级 欧美三级| 欧美国产日本高清在线| 揄拍成人国产精品视频| 国产97色在线| 亚洲最新视频在线| xxx一区二区| 久久亚洲私人国产精品va| 色樱桃影院亚洲精品影院| 国产午夜精品一区二区三区| 久久综合免费视频| 精品一区二区三区四区| 尤物tv国产一区| 亚洲国产精品高清久久久| 国产精品夜色7777狼人| 亚洲图片在区色| 欧美成人激情视频| 亚洲美女动态图120秒| 亚洲欧美一区二区激情| 操日韩av在线电影| 国产精品久久二区| 亚洲视频在线观看视频| 日韩一区二区av| 欧美大片大片在线播放| 日韩av在线资源| 久久精品国产一区二区电影| 92国产精品久久久久首页| 国产精品久久中文| 亚洲精品中文字幕有码专区| 精品国产精品三级精品av网址| 精品福利免费观看| 在线播放国产一区中文字幕剧情欧美| 2021久久精品国产99国产精品| 97国产在线观看| 国产日本欧美一区二区三区| 日本久久中文字幕| 亚洲精品久久久久久久久久久久| www.日韩不卡电影av| 91精品国产91久久久久福利| 欧美大片大片在线播放| 欧美精品videos| 超在线视频97| 亚洲国产小视频在线观看| 欧美在线一级va免费观看| 亚洲男人av电影| 国产精品久久久久久亚洲调教| 精品二区三区线观看| 日本一区二区在线播放| 国产精品久久久久久亚洲调教| 久久精品亚洲热| 亚洲精品按摩视频| 久久韩剧网电视剧| 国产成人高潮免费观看精品| www国产精品视频| 5278欧美一区二区三区| 欧美在线一级视频| 亚洲电影免费在线观看| 亚洲自拍另类欧美丝袜| 久久精品国产视频| 丁香五六月婷婷久久激情| 日韩电影第一页| 国产精品青草久久久久福利99| 亚洲欧美日韩另类| 日韩欧美极品在线观看| 久久韩剧网电视剧| 日韩精品免费一线在线观看| 日韩欧美高清视频| 亚洲国产精品久久久久久| 色无极亚洲影院| 亚洲精选在线观看| 国内精品小视频| 精品免费在线观看| 亚洲无av在线中文字幕| 国精产品一区一区三区有限在线| 欧美中文字幕视频| 欧美国产中文字幕| 欧美激情精品在线| 日韩最新免费不卡| 中文字幕精品www乱入免费视频| 97久久超碰福利国产精品…| 日韩精品一二三四区| 51ⅴ精品国产91久久久久久| 国产精品稀缺呦系列在线| 26uuu另类亚洲欧美日本一| 国自在线精品视频| 精品国产欧美一区二区五十路| 欧美激情网站在线观看| 成人观看高清在线观看免费| 国产日产欧美a一级在线| 亚洲一区二区中文| 国产精品入口福利| 久久777国产线看观看精品| 亚洲精品电影久久久| 国产成人免费av| www.欧美三级电影.com| 国产精品久久久久秋霞鲁丝| 久久色精品视频| 国产一区二区色| 青草热久免费精品视频| 亚洲影院污污.| 欧美中文在线免费| 在线播放国产一区二区三区| 黑人巨大精品欧美一区二区免费| 成人午夜小视频| 国产精品一久久香蕉国产线看观看| 日韩av在线播放资源| 韩国19禁主播vip福利视频| 久久亚洲精品国产亚洲老地址| 日韩av最新在线观看| 色偷偷亚洲男人天堂| 亚洲精品视频播放| 欧美日韩国产综合新一区| 日韩暖暖在线视频| 国产精品久久久久久久一区探花| 麻豆成人在线看| 欧美黑人巨大精品一区二区| 粉嫩av一区二区三区免费野| 亚洲精品国产欧美| 欧美电影在线观看完整版| 亚洲一区二区在线播放| 欧美激情国产日韩精品一区18| 国内精品中文字幕| 一区二区av在线| 国产亚洲精品久久久优势| 国产精品欧美一区二区| 国产日韩欧美日韩| 欧美乱大交xxxxx另类电影| 国产美女直播视频一区| 欧美激情视频网| 国产精品久久视频| 国产婷婷成人久久av免费高清| 欧美在线观看日本一区|