程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> uva 147 Dollars(完全背包)

uva 147 Dollars(完全背包)

編輯:C++入門知識

const限定符的作用:                                       1、定義const常量:const可以將一個對象變成一個常量,不可被修改,所以定義的時候必須進行初始化,例如:                const int bufsize = 512; 2、可以修飾函數的參數、返回值、甚至函數的定義體。被const修改時的東西受到強制保護,可以預防意外的變動,提高程序的健壯性。 一般全局作用域中,定義了非const變量,它可以在整個程序中訪問; //file_1.cc int counter;          //定義的是非const變量   //file_2.cc extern int counter;     //使用file_1.cc文件中的counter變量 ++counter; 如果全局作用域中聲明了const變量,則它是定義該對象的文件的局部變量,只存在於那個文件,不能被其他文件訪問; 將const變量指定為extern,就可以在整個程序中訪問const對象了 //file_1.cc extern const int counter = fcn();          //定義的是const變量,並且指定為extern,這裡counter就可以作為全局變量使用了   //file_2.cc extern const int counter;     //使用file_1.cc文件中的counter變量 ++counter;     ================================================================================================ const與#define的不同:                                       C++語言可以使用const定義常量,也可以使用#define定義常量,但是前者比後者有更多的優點:      1、 const常量有數據類型,但是宏常量卻沒有數據類型,所以編譯器可以對前者進行類型安全檢查而對後者只能進行字符替換;       2、有些集成化的調試工具可以對const常量進行調試,但是不能對宏常量進行調試。   ================================================================================================   在C++中,由const修飾的成員函數的函數體內部,是不能夠對成員變量進行修改的。但是在某些情況下,需要在const函數中改變成員變量。這就需要把成員變量設置成mutable類型,例如: class C {     public:         C(int i):m_Count(i){}         int incr() const          //這裡的成員函數incr被指定為const型,所以函數中的變量不能被修改,即m_Count變量不能改變,要是m_Count能夠改變,就                                         需要將m_Count變成mutable型         {             return ++m_Count;         }     private:         mutable int m_Count;      //主要這裡 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved