LINUX.ORG.RU

конструктор класса. параметры

 ,


0

1

здрасьте здрасьте люди добрые. помогите пожалуйста разобраться

c.cpp
class exmpl{
public:
int a;
exmpl(
};

int main(){

exmpl obj(&obj.a, 3); 

};
a.s
.section .text
.global _ZN5exmplc2epii

_ZN5exmplc2epii:

x0-cодержит адрес.
x1- по-моему разумению должен был содержать #3


скажите пожалуйста почему 3 будет передана в конструктор класса не через x1 регистр, а через x2?



Последнее исправление: Assembler (всего исправлений: 1)

Потому что this будет передан через x0, а &obj.a через x1.

kmeaw ★★★
()

А так вообще можно? Или просто пример неполный?

У меня ругается на отсутствие соответствующего конструктора. И, по-моему, правильно ругается.


construct.cpp:9:7: error: no matching constructor for initialization of 'exmpl'
exmpl obj(&obj.a, 3); 

hibou ★★★★★
()

1. Асильте отступы.

2. >exmpl obj(&obj.a, 3);

s/&obj.a/*(&obj.a)/ тогда уж. И obj вы ещё не создали, как вы к нему обращаетесь и что вы вообще хотите сделать?

thunar ★★★★★
()
Последнее исправление: thunar (всего исправлений: 1)
Ответ на: комментарий от thunar

что вы вообще хотите сделать?

уже сделал. спасибо всем уважаемые форумчане

Assembler
() автор топика
Ответ на: комментарий от hibou

Или просто пример неполный?

пример неполный.

Assembler
() автор топика
11 июня 2021 г.

твой вопрос не найдет однозначного ответа — это определяет ABI — тоесть конвенция порядка переданных аргументов. И этот ABI может быть различным на разных платформах.

safocl ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.