小编Zia*_*man的帖子

在c ++中使用成员模板函数有什么用?

给定一个具有成员模板函数的类,如下所示:

template <typename t>
class complex
{
public:
    complex(t r, t im);
    template<typename u>
    complex(const complex<u>&);
private:
    //what would be the type of real and imaginary data members here.
}
Run Code Online (Sandbox Code Playgroud)

我对成员模板功能感到困惑,请提供一个示例,通过该示例,我可以清楚地了解成员模板功能的需求.
另外,告诉我在c ++中使用成员模板函数,我们使用成员模板函数的情况是什么?

c++ oop

4
推荐指数
2
解决办法
369
查看次数

如何在C++中分配子类的对象?

我对C++中的继承概念感到困惑,假设我们有一个名为computer的类,我们公开从计算机类继承了一个名为laptop的类.现在当我们在main函数中创建类laptop的对象时,内存中会发生什么?请解释.

c++ oop memory-management

3
推荐指数
1
解决办法
706
查看次数

非常基本的问题

因为我们在函数的参数列表中使用指针

void f(int *); 
Run Code Online (Sandbox Code Playgroud)


这意味着此函数将接收指向整数的指针,
但这意味着什么

void f(int ***); 
Run Code Online (Sandbox Code Playgroud)

void f(int **=0)
Run Code Online (Sandbox Code Playgroud)

c c++

3
推荐指数
2
解决办法
360
查看次数

c ++中的默认模板参数

假设我有一个功能模板StrCompare

template<typename T=NonCaseSenCompare>//NonCaseSenCompare is a user defined class look at the detailed code below.
int StrCompare(char* str1, char* str2)
{
...
}
Run Code Online (Sandbox Code Playgroud)

现在在主要功能我写了一行

char* str1="Zia";
char* str2="zia";
int result=StrCompare(str1,str2);
Run Code Online (Sandbox Code Playgroud)

它应该工作,因为我们提供了一个默认的模板参数,但它 没有
编译器给出以下错误
没有匹配函数调用`StrCompare(char*&,char*&)'现在详细的代码由下面给出

#include<iostream.h>
class CaseSenCompare
{
public: 
static int isEqual(char x, char y)
{
return x==y;
}
};
class NonCaseSenCompare
{
public:
static int isEqual(char x,char y)
{
char char1=toupper(x);
char char2=toupper(y);
return char1==char2;
}
};
template<typename T=NonCaseSenCompare>
int StrCompare(char* str1, char* str2)
{
for(int i=0;i < strlen(str1)&& strlen(str2);i++) …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++03

3
推荐指数
1
解决办法
2250
查看次数

无效的有效地址计算

请看下面的程序,错误是无效的有效地址计算,我已经提到那行,请告诉我为什么这里无效的有效地址计算是程序

[org 0x100]
jmp start


array1: dw 10,15,20,25,30,35,40,45,50,55
array2: dw 15,10,20,35,40,30,55,50,25,45

start:  mov bx,0
    mov cx,0
loop:   mov ax,[array2+bx]
        cmp ax,[array1+cx]//here is the error invalid effective address calculation 
        jne NextElementOfArray1


NextElementOfArray2:    add bx,2
                        cmp bx,20       
            je end
                        mov cx,0
            jmp loop


NextElementOfArray1:    add cx,2        
                        cmp cx,20       
            je NextElementOfArray2   
            jmp loop
end:    mov ax,0x4c00
    int 0x21
Run Code Online (Sandbox Code Playgroud)

assembly

3
推荐指数
1
解决办法
5906
查看次数

进位标志和减法问题

如果从较小的数中减去较大的数,则需要借位。进位标志在减法运算中起到借位的作用。现在假设我们要从 56 中减去 66,显然需要借位并设置进位标志。现在如何执行此减法以获得结果 -10,计算机将如何区分结果将是负数。请说明过程。

assembly

3
推荐指数
1
解决办法
7335
查看次数

AVL树中节点的平衡因子

要计算AVL树中节点的平衡因子,我们需要找到其左子树的高度和右子树的高度.然后我们从其左子树的高度中减去右子树的高度:

balancefactor = leftsubtreeheigh - rightsubtreeheight

我的问题是:如何计算左子树或右子树的高度?

例如,在给定的图1中,根节点40的左子树的高度是4,右子树的高度40是2,因此高度的差是2.

我如何在C++中执行此操作?我不想使用递归,因为它非常令人困惑.使用显式堆栈而不是递归更容易理解.


1 该图已从imgur服务器中删除.

c++ avl-tree

2
推荐指数
2
解决办法
3万
查看次数

C++编译器错误:没有匹配的调用函数

请查看以下代码.这有什么问题?编译器给出了这个错误:

在复制构造函数person::person(person&)': No matching function for call toperson :: copy(char*&,char*&)'候选者是:void person :: copy(char*&,const char*&)"

这是代码:

class person
{
  public:
    person();
    person(person &);

  private:
    void copy(char*&,const char*&);
    char* name, *fathername,* address;
};

void person::copy( char*& n, const char*& p)
{
  int result;
  result=strcmp(n,p);
  if(result!=0)
  {
    n=new char[strlen(p)+1];
    strcpy(n,p);
    n[strlen(p)]='\0';
  }
}
person::person(person &object)
{
  copy(name,object.name);
  copy(fathername,object.fathername);
  copy(address, object.address);
}
Run Code Online (Sandbox Code Playgroud)

从这个问题的答案来看,到目前为止我所理解的是:编译器不允许将引用转换为常量引用,因为引用已经是常量.它们不能指向像指针一样的不同内存位置.我对吗?

c++ oop

2
推荐指数
2
解决办法
2万
查看次数

树的递归和非递归过程


因为我们知道树是递归数据结构,我们使用recurrsion来编写树的程序,如BST的删除方法等
.复发的优点是,我们的程序变得非常小(例如,遍历遍历的代码只有4或者是5行)而不是非复原程序,这种程序虽然冗长但不像理解透视中的递归程序那么复杂.这就是为什么我讨厌复发,我更喜欢写非复原程序,我已经在二元serach树和avl树做了.
现在请详细说明,更喜欢非递归程序而不是复发程序是不好或好事."

c++ oop data-structures

2
推荐指数
1
解决办法
2385
查看次数

什么是不在Java中的OOP功能但c ++具有这些功能?

尊敬的先生!

由于我还没有学过java,但是大多数人都说C++比Java有更多的OOP功能,我想知道c ++有哪些功能,java没有.请解释.

c++ java

1
推荐指数
2
解决办法
1604
查看次数