首页 > 编程知识 正文

包含c语言classstring是什么意思的词条

时间:2023-12-29 20:31:40 阅读:330499 作者:USXO

本文目录一览:

C语言中有string类型变量吗?

" C语言中有string类型变量吗"

这里的 string 有 二 义性。

(1) 如果 string 是普通词汇,“C语言中有字符类型变量吗”, 答,有。 字符类型 用 char 声明。

char str[]="This is a string";

(2) 如果 string 是专用词汇,“C语言中有string类型变量吗”,答,没有。string 是 类,是 class, 不是 类型,不是 type.

类 的 声明 用 构造函数初始化,或 new 声明。

类 -- C++, 不是 C

c++语言中class是什么意思

在C++ 语言中class是定义类的关键字,C++中也可以使用struct定义类。

两者区别是,用class定义的类,如果数据成员或成员函数没有说明则默认为private(私有)的,而用struct定义的,默认为public(公共)的。  

 示例 #include using namespace std; class C { public: int getAge() const { return age; } void setAge( int n ) { age = n; } private: int age; }; int main() { C c; c.setAge( 22 ); cout "My age: " c.getAge() endl; return 0;

}

作为面向对象程序设计的基础,掌握class的基本结构和特性是十分重要的。

c语言中什么是类(class),什么是结构。两者有什么区别?详细点。书上不太清楚。。谢谢

类与结构的差别 :

1. 值类型与引用类型

结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,通过使用结构可以创建更多的值类型

类是引用类型:引用类型在堆上分配地址

堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑

因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用

注:

1.虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object

2.虽然结构的初始化也使用了New 操作符可是结构对象依然分配在堆栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之前,字段将保持未赋值状态,且对象不可用

2.继承性

结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed .

类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承

注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样

string.class是什么东西啊,在api中string类没有class这个属性啊,这是图片

这个是反射,String.class可以返回一个代表String类的类对象(官方叫类类型,Class Type,因为Java里面万物皆对象,所以类其实也是一个对象)。

另外把String实例化之后,再用getClass();方法也可以返回类对象。比如

String s = new String("lalala");

s.getClass();

而且String.class == s.getClass();

也就是说一个类的类对象只能有一个。

具体建议去看慕课网的视频,讲得特别好:

c++中string和char的主要区别在哪?

C++中的char是个基本类型,跟int一样;而string却是个库自带的类,声明的变量是个对象,但不需要程序员自动析构。他们都可以被自动初始化,但还是手动初始化更保险,免得使用不当,引起coredump

下面是c 中字符串与C++字符串的区别。希望下面的state能clarify your issue. :)

1)

在C语言中,将字符串作为字符数组来处理。即C string就是 char arrary[MAX_SIZE];字符数组。

而C++中的string 是 string class, 声明形式 string strObject.变量是个对象。只是他是C++ 标准库提供的string类,

其实现效果跟用户自定义的类一样。

2) C string 字符串可以用字符串数组 char Array[MAX_SIZE];与字符串变量 char *p; 两种方式来存储。

以 ''为字符串结束标志。

strlen 是把串结束符 ''算在内的,而sizeof是在对字符数组和字符变量的操作结果不一样,引起原理不一样。

strcmp, strncmp,连接使用strcat, 不能 str1+str2, strncat

strcpy, stncpy; strchr(str1, ch); 在str1中查找ch第一次出现的位置,返回指针变量

而C++ string是类,是对象.结束符是npos,或者-1;

不用指定字符数目的大小。

+ 取代了strcat

length和size取代了strlen

append, compare, substr,find, find_firt_of等函数

可以直接=, 而不用strncpy。

insert, replace, at, erase, clear, swap还有iterator函数的实现。

3)在函数实现部分

printf,scanf, fprinf等可以format的一个字符串中使用 "%s"时,只能用c string;如果是C++ string的话,就必须先变成

c string,否则就会报错。如:

a)

string str ("Test string");

printf("%sn", str);

编译错误:warning: cannot pass objects of non-POD type 'struct std::string' through '...'; call will

abort at runtime

执行错误:Illegal instruction(coredump)

b)

void strprint(const char *s)

{

printf("function: %sn%", s);

}

string str ("Test string");

strprint(str);

编译错误:error: cannot convert 'std::string' to 'const char*' for argument '1' to 'void strprint(const

char*)'

因为c string是基本类型:char 或char array;而c++ string却是个类,是个对象。二者的实现截然不同,不同场合的使用需

要转换。

修改:只需要将a), b)中的str变为 str.c_str()即可。

对了这个C++ string的c_str()函数能给出c string 和C++ string的部分区别的解释。

4.头文件

只有在使用c string的strncpy, strtok等库函数时才include string.h

而C++中,则在声明 string 对象时include string

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。