1. 定義和宣告的區別:
宣告是告訴編譯器這個函式或者變數可以在**找到,它的模樣是什麼。而定義是告訴編譯器 在這裡建立函式或變數,並為他們分配記憶體空間。
變數的宣告:extern int a;
變數的定義:int a; 如果在此之前沒有對變數的宣告,則這裡既是宣告也是定義。編譯器會為其分配對應的記憶體。
2. c和c++中static的區別:
在c語言中static的作用如下:
1. 在修飾變數的時候,static修飾的靜態區域性變數只執行一次,而且延長了區域性變數的生命週期,直到程式執行結束以後有才釋放。
2. static修飾全域性變數的時候,該全域性變數只能在本檔案中訪問,不能在其他檔案中訪問,即便是extern外部宣告也不可以。
3. static修飾乙個函式,這個函式只能在本檔案中呼叫,不能在其他檔案呼叫。static修飾的區域性變數存放在全域性資料區的靜態變數區,初始化的時候自動初始化為0。
(1) 不想釋放的時候。
(2) 考慮資料的安全性(當想要使用全域性變數的時候應該先考慮使用static)。
3. 在c++中static關鍵字除了具有c中的作用還有在類中的使用
在類中,static可以修飾靜態資料成員和靜態成員方法
靜態資料成員:
(1) 靜態資料成員可以實現多個物件之間資料的共享,它是類所有物件的共享成員,在記憶體中只佔乙份空間,如果改變它的值,則各個物件中這個資料成員的值都被改變。
(2) 靜態資料成員實在程式開始執行時被分配空間,到程式結束之後才釋放,只要類中指定了靜態資料成員,即使不定義物件,也會為靜態資料成員分配空間。
(3) 靜態資料成員可以被初始化,但是只能在類體外進行初始化,若為靜態資料成員賦初值,則編譯器會自動為其初始化為0.
(4) 靜態資料成員既可以通過物件名引用,也可以通過類名引用。
靜態成員函式:
(1) 靜態成員函式和靜態成員一樣,他們都屬於類的靜態成員,而不是物件成員。
(2) 非靜態成員函式有this指標,而靜態成員函式沒有this指標。
(3) 靜態成員函式只能用來訪問靜態成員變數,而不能訪問非靜態成員。
Spring 運用(一) 概念
spring強大的核心功能之一,顛覆原有的依賴關係,後面稱為依賴注入。即由ioc容器管理依賴關係 依賴相關的bean的生命週期。註解spring註解很強大,類似於通過 autowire或者 resource進行bean的注入。配置配置又分為setter和construction。面向方面的程式設計,...
Spring基礎(一) 概念
t1 spring中bean的生命週期 total 1.先要通過反射呼叫bean的構造器例項化bean 2.再通過反射注入bean的屬性 3.若實現裡beannameaware介面,根據bean的id,setbeanname 4.若實現了beanfactoryaware介面,呼叫setbeanfac...
PowerDesigner教程(一)概念資料模型
目標 本文主要介紹powerdesigner中概念資料模型 cdm的基本概念。一 概念資料模型概述 資料模型是現實世界中資料特徵的抽象。資料模型應該滿足三個方面的要求 1 能夠比較真實地模擬現實世界 2 容易為人所理解 3 便於計算機實現 概念資料模型也稱資訊模型,它以實體 聯絡 entity re...