先看一段類**的定義:
#pragma once#includeusing
namespace
std;
class
mycoach
;
#define _crt_secure_no_warnings#include"mycoach.h
"#include
using
namespace
std;
mycoach::mycoach(
char *_name,int age,const
char *expertise):age(age)
mycoach::~mycoach()
void
mycoach::print()
void mycoach::setfoodslike(char *foods)
void
mycoach::eat()
#define _crt_secure_no_warnings#include輸出結果:#include
"mycoach.h
"using
namespace
std;
intmain()
如果閱讀本篇文章的你,有使用其他物件導向程式設計語言的經歷,對於直接呼叫類名 物件名(初始化引數1,初始化引數2,初始化引數3.....)進行例項化的做法一定司空見慣
但偏偏作為從c有技術繼承的語言c++來說,實現乙個變數盛放字串,做法十分獨特-----c語言使用字元陣列盛放字串資訊,c和c++都用char* 變數名指向乙個字串,c++中單設立了乙個容器型別string存放字串......
如果你習慣上述例項化乙個物件的習慣,那麼在c++就要留意了,對於初始化時的字串,一定要選好變數型別,下面就各類變數選型帶來的問題予以列出
以本篇中的類為例:如果mycoach類的屬性name或者expertise這種字串被宣告為string型別,當然皆大歡喜,且容易想到,但是類成員方法print()中有大量cout輸出呼叫,string型別無法cout直接輸出,結果是你不得不實現cout的多型,例如寫個ostrem&operator
<
char coachname[30] = "
陳培昌"
;char* name = coachname;
字串初始化賦值
在c語言中,字串是當做字元陣列來處理的 所以字串有兩種宣告方式,一種是字元陣列,一種是字元指標。1 直接逐個初始化字元陣列 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 注意 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這...
C結構體中字串初始化
小知識1 const char const char str 定義的是乙個指向常量的指標。如果str是區域性變數,則字串會隨著變數所在的函式的退出而自動釋放 如果str是全域性變數,則程式退出時才自動釋放。char strdup const char s include include includ...
C 列表初始化,字串初始化
列表初始化 int a 0 int a 全面應用 int a int a 0 預設初始化 定義變數時,沒有指定初值,則變數被預設初始化。定義函式體外的變數被初始化為0,函式體內部的內建型別變數不被初始化。字串初始化 string s1 string s2 s1 string s2 s1 string...