Web前端c++是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web前端c++是啥意思?相关的知识,希望对你有一定的参考价值。

C++是一种面向对象的计算机程序设计语言,由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C)。它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。 C++是C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 参考技术A Web前端c++是指使用C++语言开发Web前端的应用程序或框架。Web前端是指用户通过浏览器访问的网页或网站的界面和交互部分,通常使用html、CSS和javascript等技术实现。C++是一种编译型、面向对象、泛型和多范式的编程语言,具有高性能、灵活性和跨平台的特点。使用C++开发Web前端的优势是可以利用其高效的内存管理、多线程支持和底层操作能力,提升Web应用程序的性能和安全性。同时,C++也可以通过WebAssembly技术编译成二进制格式,在浏览器上运行,实现与JavaScript等语言的互操作。

C++ 中的 :: 是啥意思? [复制]

【中文标题】C++ 中的 :: 是啥意思? [复制]【英文标题】:What does the :: mean in C++? [duplicate]C++ 中的 :: 是什么意思? [复制] 【发布时间】:2011-03-29 15:54:00 【问题描述】:
void weight_data::rev_seq(string &seq) 
//TODO
std::reverse(seq.begin(), seq.end());

在这个C++方法中,我觉得这个方法没有返回任何东西,所以前缀是void::告诉weight_datarev_seq(string &seq)之间的关系是什么?谢谢!

【问题讨论】:

:: 在 PHP 中被称为 Paamayim Nekudotayim。 【参考方案1】:

weight_data 是 namespace 或类名。

【讨论】:

【参考方案2】:

void 是返回类型。 :: 是作用域解析运算符,所以这意味着rev_seqweight_data 的作用域内。 weight_data 可以是命名空间或类(根据您提供的内容,无法确定是哪个)。

【讨论】:

"weight_data" 被定义为 a.hpp 文件中的一个结构,其中一个名为 "rev_seq" 的方法(未实现),然后在 a.cpp 文件中,这个方法被称为我在问题部分 @ladyfafa: void weight_data::rev_seq(string &seq) ... 那个成员函数的实现。 @sbi:好的,我明白了;可以多次实施吗?即在不同的 cpp 文件中,对来自结构“weight_data”的同一函数“rev_seq”进行不同的实现 @ladyfafa: 否——C++ 有一个“单一定义规则”(ODR),即任何一个函数只能实现(定义)一次。有几种例外情况(例如,对于内联函数),但它们只是一些例外情况,无论如何这都不适合其中任何一种。 @ladyfafa:通常,定义只能出现一次。 (参见What is the difference between a definition and a declaration?)但是,不同的成员函数可以在不同的实现文件中实现。此外,根据某些先决条件(例如,编译程序的平台),条件编译可用于包含同一实体的多个定义之一。【参考方案3】:

在 C++ 中,

A::B 表示Bnamespaceclass 类型A 中的标识符, A.B 表示Bstructclassunion 类型的成员,其实例由对象或引用A 引用,并且 A->B 表示Bstructclassunion 类型的成员,其实例由指针A 引用。 (相当于(*A).B。)

在其他一些语言中,所有这三种情况都只包含在 . 中。

请注意,在 C++ 中,成员函数不必在其类的定义中实现(定义)。 (如果是,则它们隐含为inline。)它们可以并且经常在单独的实现(.cpp)文件中实现。这样做的好处是,当您更改类的成员函数之一的实现时,并非类的所有用户都需要重新编译。因此,除非weight_datanamespace 名称,否则void weight_data::rev_seq(string &seq) ... 是其类之外的类成员的此类定义。

【讨论】:

非常全面,非常感谢! 注意:*-> 运算符可以重载。通常,它们仅对迭代器和智能指针之类的东西进行重载。设计不佳的代码可能会使这些运算符过载。 @Brian:这是一个非常好的观点!【参考方案4】:

void weight_data::rev_seq(string &seq) 行告诉编译器这是来自weight_datarev_seq(string &seq) 成员函数的定义。如果这只是说void rev_seq(string &seq) ... ,编译器会认为正在定义一个非成员函数,而不是weight_data 类的rev_seq(string &seq) 成员函数。

class weight_data

    void rev_str(string &seq);

这也可能意味着rev_str 指的是作为命名空间weight_data 一部分的函数。

namespace weight_data

    void rev_str(string &seq);

【讨论】:

请注意,weight_data 可能是一个命名空间。另外,我认为您的意思是写“如果这只是说void rev_seq(string &seq) ... ...”。 感谢 sbi 让我注意到这一点。【参考方案5】:

刚刚想到添加 2 个关于 ::

的有趣的东西

a) 运算符 :: 既是一元运算符又是二元运算符

struct A
   int m;
;

int x;
int main()
   ::x;                     // Unary
   int (A::*p) = &A::m;     // Binary

b) $10.3/12 - “显式限定范围运算符 (5.1) 抑制了虚拟调用机制。”

struct A
   virtual void f()cout << 1;
;

struct B : A
   void f()cout << 2;
;

int x;
int main()
   B b;
   A &ra = b;
   ra.f();     // dynamic binding, prints 2
   ra.A::f();  // suppress VF mechanism, prints 1.

【讨论】:

以上是关于Web前端c++是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

web前端三大主流框架都是啥?

web前端三大主流框架都是啥?

网站啥的要分前端和后端的?是啥意思?

前端中的Vue是啥?

web前端的行业趋势是啥?

前端开发是啥