标签: operator-keyword

在C++迭代器类中重载*(迭代器+ n)和*(n +迭代器)?

(注意:我正在编写这个项目仅供学习;有关冗余的评论是......呃,多余.;)

我正在尝试实现一个随机访问迭代器,但是我发现关于这个主题的文献很少,所以我将通过试验和错误结合维基多数运算符重载原型列表.到目前为止它运作良好,但我遇到了障碍.

代码如

exscape::string::iterator i = string_instance.begin();
std::cout << *i << std::endl;
Run Code Online (Sandbox Code Playgroud)

工作,并打印字符串的第一个字符.但是,*(i + 1)不起作用,*(1 + i)也不起作用.我的完整实现显然有点太多了,但这是它的要点:

namespace exscape {
    class string {
        friend class iterator;
    ...
    public:
        class iterator : public std::iterator<std::random_access_iterator_tag, char> {
            ...
            char &operator*(void) {
                return *p; // After some bounds checking
            }
            char *operator->(void) {
                return p;
            }

            char &operator[](const int offset) {
                return *(p + offset); // After some bounds checking
            }

            iterator &operator+=(const int offset) {
                p += offset;
                return *this;
            }

            const …
Run Code Online (Sandbox Code Playgroud)

c++ iterator operator-overloading operator-keyword

0
推荐指数
1
解决办法
3373
查看次数

重载的一元运算符++需要一个参数

我想在C#中重载运算符'++',但是当我编写下面的代码时,VS 2012会给我一个错误消息.

    public LogItem operator ++()
    {
        ++ visitTimes;
    }
Run Code Online (Sandbox Code Playgroud)

错误是重载的一元运算符++需要一个参数

我在这里是LogItem 的定义:

     public class LogItem
     {
        /**
         * Constructor
         */
        public LogItem(string ip)
        {
            ipAddress = ip;
            visitTimes = 0;
        }

        /**
         * Operator Overload Function
         */
        public LogItem operator ++() 
        {
            ++ visitTimes;
        }

        public string ipAddress { get; private set; }
        public string location { get; set; }
        public int visitTimes { get; private set; }
     }
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能重载运算符'++'?

c# overloading operator-keyword

0
推荐指数
1
解决办法
2226
查看次数

在简单的字符串代码中不匹配'operator =='

编写一个简单的代码并遇到问题我不知道如何处理.我试着通过搜索来调查它,但我找不到任何帮助,每个人的答案都有点高于我的头脑.请有人像小孩子一样解释这个,哈哈.谢谢.

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string invCode = "";
    string lastTwoChars = "";

    cout << "Use this program to determine color of furniture.";
    cout << "Enter five-character inventory code: ";
    cin >> invCode;

    if (invCode.length() == 5)
    {
        lastTwoChars = invCode.substr(3,2);
         if (lastTwoChars == 41)
         { 
              cout << "Red";
              }
         if (lastTwoChars == 25)
         { 
              cout << "Black";
              }
         if (lastTwoChars == 30)
         { 
              cout << "Green";
              }
    }
    else
         cout << "Invalid inventory …
Run Code Online (Sandbox Code Playgroud)

c++ string operator-keyword

0
推荐指数
1
解决办法
2768
查看次数

如何在C#泛型类中调用类型转换运算符?

看来我们不能在C#泛型类中轻松调用类型转换运算符.这是代码.为什么?

T006最终归档我们的目标.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Reflection;
using System.Linq;

namespace ConsoleApplication1
{
    class vec<T, T2> : List<T> where T : class
    {
        public vec(IEnumerable<T2> other)
        {
            //Converter<T2, T> cvt = (v) => (T)v; // T004 failed, try defined function dynamicly, cannot compile, too.

            // T006 pass, client happy, we not happy, but anyway passed, performance may not happy.
            var conversionOperator = typeof(T).GetMethods(BindingFlags.Static | BindingFlags.Public)
                                    .Where(m => m.Name == "op_Explicit" || m.Name == "op_Implicit") …
Run Code Online (Sandbox Code Playgroud)

c# generics type-conversion operator-keyword

0
推荐指数
1
解决办法
3260
查看次数

为什么target.write忽略我的%r格式?

我正在尝试编写一个类似于这个人的程序,该程序靠近页面顶部的Learn Python the Hard Way程序.

http://learnpythonthehardway.org/book/ex16.html

这是我的下面版本.但它告诉我"%r"最后使用它为什么这样做?我认为这就是你在括号中要做的事情.

# -- coding: utf-8 --

from sys import argv

script, filename = argv

print "Would you like file %r to be overwritten?" % filename
print "Press RETURN if you do, and CTRL-C otherwise."

raw_input('> ')

print "Opening the file ..."
target = open(filename, 'w')
target.truncate()

print "Now type three lines to replace the contents of %r" % filename

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 …
Run Code Online (Sandbox Code Playgroud)

python format python-2.6 operator-keyword

0
推荐指数
1
解决办法
88
查看次数

二元OR运算符

你好我有两个号码

int a= 6;
int b = 20;
Run Code Online (Sandbox Code Playgroud)

当我在做orie |操作时,它没有给出正确的结果.

int result = a | b ;
Run Code Online (Sandbox Code Playgroud)

result = 22但正确的答案是26.

java bitwise-operators operator-keyword

0
推荐指数
1
解决办法
892
查看次数

Python就地运算符(如"+ ="),numpy数组和身份函数不能正常工作?

数组yn并且zn等于数字,但有一个奇怪的区别:yn += 7正如预期的那样,行不会改变tn数组,但第二行最后一行会zn += 7改变tn数组!

这是代码:

import numpy as np
def f(x): return (1*x)
def g(x): return (x)
nn = 5
tn = np.zeros(nn)
yn = np.zeros(nn)
zn = np.zeros(nn)

tn = np.linspace(0,1,nn)
yn = f(tn)
zn = g(tn)

print('tn at step1 =',tn)
yn += 7  #as expected, this line does not change tn.
print('tn at step2 =',tn)
zn += 7  #why this line adds 7 to tn …
Run Code Online (Sandbox Code Playgroud)

python numpy in-place operator-keyword

0
推荐指数
1
解决办法
146
查看次数

C ++ ifstream和ofstream重载运算符从文件中读取

大家好,我正在尝试重载ifstream和ofstream,但没有成功。

头文件:

#include <iostream>
#include <fstream>

using namespace std;

class Complex
{
    private:
        double real;
        double imaginary;
    public:
        //constructors
        Complex();
        Complex(double newreal, double newimaginary);
        ~Complex();
        //setter
        void setReal(double newreal);
        void setImaginary(double newimaginary);
        //getter
        double getReal();
        double getImaginary();
        //print
        void print();
        //methods
        Complex conjugate();
        Complex add(Complex c2);
        Complex subtraction(Complex c2);
        Complex division(Complex c2);
        Complex multiplication(Complex c2);

friend ifstream& operator >> (ifstream& in, Complex &c1)
{

    in >> c1;

    return in;
}

};
Run Code Online (Sandbox Code Playgroud)

测试文件:

#include <iostream>
#include <fstream>
#include <string>
#include "Complex2.h" …
Run Code Online (Sandbox Code Playgroud)

c++ overloading operator-keyword

0
推荐指数
1
解决办法
5194
查看次数

运算符重载意外结果

我不明白为什么一元运算符不起作用.我相信我错过了一些概念.请帮忙.

#include <iostream>
using namespace std;

class Distance {
   private:
      int feet;             // 0 to infinite
      int inches;           // 0 to 12
   public:
      // required constructors
      Distance(){
         feet = 0;
         inches = 0;
      }
      Distance(int f, int i){
         feet = f;
         inches = i;
      }
      // method to display distance
      void displayDistance() {
         cout << "F: " << feet << " I:" << inches <<endl;
      }
      // overloaded minus (-) operator
      Distance operator- () {
         return Distance(-feet, -inches);
      }
}; …
Run Code Online (Sandbox Code Playgroud)

c++ overloading operator-keyword

0
推荐指数
1
解决办法
49
查看次数

是否有相当于C#的| VB.Net中的运算符?

在VB.Net中是否有相当于C#的管道运算符(|)?

我从这里有一些代码如何为我的应用程序为所有用户创建的文件授予完全权限?

它在C#中,我想将其转换为VB.Net.我到目前为止(VS说有一个错误:| InheritanceFlags.ContainerInherit):

Sub ZugriffsrechteEinstellen()

    Dim dInfo As New DirectoryInfo(strPfadSpracheINI)
    Dim dSecurity As New DirectorySecurity

    dSecurity = dInfo.GetAccessControl()
    dSecurity.AddAccessRule(New FileSystemAccessRule(New SecurityIdentifier(WellKnownSidType.WorldSid, Nothing), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow))

    dInfo.SetAccessControl(dSecurity)

End Sub
Run Code Online (Sandbox Code Playgroud)

c# vb.net pipe equivalent operator-keyword

0
推荐指数
1
解决办法
194
查看次数